GNU bug report logs -
#70007
[PATCH] native JSON encoder
Previous Next
Full log
View this message in rfc822 format
> From: Mattias Engdegård <mattias.engdegard <at> gmail.com>
> Date: Tue, 2 Apr 2024 16:13:58 +0200
> Cc: casouri <at> gmail.com,
> 70007 <at> debbugs.gnu.org
>
> Looks like the new serialiser inherited a bug from the old code: `json-insert` in a unibyte buffer does not move point correctly. Example:
>
> (with-temp-buffer
> (set-buffer-multibyte nil)
> (json-insert "é")
> (list (buffer-string) (point)))
> => ("\"\303\251\"" 4)
>
> The string is correct but the position should be 5, not 4.
In a build with --enable-checking, this hits an assertion. So I think
we should add this to the test suite.
> This made me look at the Fjson_insert logic a bit. I'm probably betraying my lack of knowledge about buffer subtleties here, but since the serialiser always produces (correct) UTF-8, shouldn't it be enough to copy the bytes, don't bother with any decoding, and perform the buffer insertion ceremonies?
Yes, I think that's true.
One nit, though: if the result could be an empty string, then we
should not do anything at all, not even invalidate_buffer_caches.
This bug report was last modified 250 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.