Philipp Stephani schrieb am So., 29. Okt. 2017 um 21:48 Uhr: > Paul Eggert schrieb am Mo., 9. Okt. 2017 um > 08:19 Uhr: > >> Philipp Stephani wrote: >> > I don't think Jansson can use xmalloc because xmalloc can exit >> nonlocally, >> > which is not expected by a third-party library such as Jansson. It could >> > use a suitable wrapper of lmalloc, though. >> >> That would be overkill, as lmalloc arranges for Lisp alignment, which >> Jansson >> does not need. We could define new functions (smalloc and srealloc, say), >> that >> act like malloc and realloc except they return NULL for requests larger >> than >> PTRDIFF_MAX. Right now, I expect only the JSON code needs this sort of >> thing so >> we could put the new functions in json.c. If other code needs it later we >> could >> move these new functions to alloc.c. >> > > Yes, that sounds reasonable. > Here's a new patch that incorporates some of these changes. Specifically: - I've removed some of the assertions - I've installed a custom allocator, as you suggested - Reverted back to creating a temporary string and inserting that into the buffer. Anything else just doesn't seem to work or seems way too complex. - Introduced explicit encoding and decoding. I suspect that will lead to a massive performance hit, but I haven't done any benchmarks yet. - Added manual section and NEWS entry