Philipp Stephani schrieb am So., 29. Okt. 2017 um 23:49 Uhr: > 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 > Is that patch OK for master?