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