Eric Haszlakiewicz
0a070ef312
Fix one more assert("!invalid cint_type") to use json_abort(...) instead.
2020-04-10 01:26:04 +00:00
dota17
8b162c4b89
clang-format the files
2020-04-03 11:39:30 +08:00
dota17
c117d8a8a8
add the disabling formatting coments and adjust the partial code manuly
2020-04-03 11:28:04 +08:00
Robert
56f81811c2
Changed order of calloc args to match stdlib
...
Although it is currently working, it's worth to stick with the stdlib definition to avoid further problems
2020-04-02 19:23:10 +02:00
dota17
3822177473
add test cases
2020-03-31 19:12:45 +08:00
Jehan
b15e7ba470
Fixes various Wreturn-type and Wimplicit-fallthrough errors on Mingw-w64
...
This is a recent regression since commit
6359b79847 which added various assert(0)
calls (often replacing return-s).
With Ming-W64 compiler, json-c build was failing with various errors of
the sort:
> /home/jehan/dev/src/json-c/json_object.c: In function 'json_object_int_inc':
> /home/jehan/dev/src/json-c/json_object.c:841:1: error: control reaches end of non-void function [-Werror=return-type]
> 841 | }
> | ^
> In file included from /home/jehan/dev/src/json-c/json_object.c:17:
> /home/jehan/dev/src/json-c/json_object.c: In function 'json_object_get_double':
> /home/jehan/.local/share/crossroad/roads/w64/json-c/include/assert.h:76:4: error: this statement may fall through [-Werror=implicit-fallthrough=]
> 76 | (_assert(#_Expression,__FILE__,__LINE__),0))
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/jehan/dev/src/json-c/json_object.c:1070:7: note: in expansion of macro 'assert'
> 1070 | assert(0);
> | ^~~~~~
> /home/jehan/dev/src/json-c/json_object.c:1072:3: note: here
> 1072 | case json_type_boolean:
> | ^~~~
The problem is that Mingw-w64 does not consider assert() as a noreturn
(even assert(0)), because it has to be compatible by Microsoft
libraries. See the discussion here:
https://sourceforge.net/p/mingw-w64/bugs/306/
Instead let's create a new json_abort() function which is basically just
an abort() function with an optional message, for such cases where
abortion was non-conditional (using assert() and using the assertion
condition as a message here was clearly a misuse of the function). And
mark json_abort() as 'noreturn', as well as 'cold' for optimization
purpose (this is code we expect to never run, unless there is a bug,
that is).
Finally let's use this json_abort() instead of previous misused assert()
calls.
2020-03-16 19:53:28 +01:00
Eric Haszlakiewicz
b3296e778f
Follow up the PR#542: improve assert() calls, simplify code in json_object_equal().
2020-03-02 02:08:49 +00:00
dota17
6359b79847
update json_object.c and testcase, delete json_object_uint_inc()
2020-02-28 17:51:56 +08:00
dota17
9532f94fa4
modify partial functions and testcase, in order to support automatic conversion for int64/uint64
2020-02-28 09:25:02 +08:00
dota17
c816de212b
modify the json_object, replace c_int64/c_uint64 with struct{union{int64, uint64},...}
2020-02-27 10:26:27 +08:00
dota17
3c3b5920f7
add uint64 data to json-c
2020-02-25 14:51:35 +08:00
Eric Haszlakiewicz
518f337ce8
Issue #539 : use a internal-only serializer function in json_object_new_double_s() to avoid potential conflicts with user code that uses the json_object_userdata_to_json_string serializer. Also, document the serializer-resetting behavior of json_object_set_double().
2020-02-14 03:48:02 +00:00
Eric Haszlakiewicz
ae13ca524a
Issue #539 : reset the serializer when json_object_set_double() is called and the current serializer is the one that json_object_new_double_s() used.
2020-02-13 03:11:10 +00:00
dota17
010f33d460
add json_object_new_null
2020-01-20 16:46:46 +08:00
Eric Haszlakiewicz
7f30afc6e5
Fix some Windows compile issues, add JSON_EXPORT's, fix bogus character escapes, define __func__ and omit unistd.h if needed.
2019-11-23 20:31:14 -05:00
Eric Haszlakiewicz
d0b87ee87b
Add an explicit cast to double to squash a -Wimplicit-int-float-conversion warning.
...
Though we will no longer be comparing exactly against INT64_MAX, this is ok
because any value of that magnitude stored in a double will *also* have been
rounded up, so the comparison will work appropriately.
2019-08-12 00:30:45 +00:00
Eric Haszlakiewicz
485f2a02c7
Issue #486 : append a missing ".0" to negative double values too.
2019-05-28 02:44:22 +00:00
Eric Haszlakiewicz
ee4691c9fb
Merge pull request #453 from darjankrijan/master
...
Fixed misalignment in JSON string due to space after \n being printed...
2018-12-11 20:17:43 -05:00
Eric Haszlakiewicz
240627f260
Merge pull request #454 from ramiropolla/json_object_private
...
json_object_private: save 8 bytes in struct json_object in 64-bit arc…
2018-11-30 09:49:35 -05:00
Eric Haszlakiewicz
745cadc944
Merge pull request #461 from andy5995/issue_422
...
json_object.c:set errno in json_object_get_double()
2018-11-28 20:39:42 -05:00
andy5995
3b108935d0
json_object.h:document json_object_new_string_len()
...
I also added a couple trivial, but related, suggestions.
closes #460
2018-11-27 11:35:45 -06:00
andy5995
506a32d4ab
json_object.c:set errno in json_object_get_double()
...
closes #422
2018-11-26 21:12:06 -06:00
Ramiro Polla
5bb5e2e8fc
json_object_private: save 8 bytes in struct json_object in 64-bit architectures
...
- there is no need for _ref_count to be uint_fast32_t (the compiler
might decide to use a 64-bit int). make it uint32_t instead.
- reorder the 32-bit integer fields (o_type and _ref_count) so that
there is no wasted 4-byte gap after each of them.
2018-11-24 04:16:36 +01:00
Darjan Krijan
3943960874
Removed spaces after \n for arrays as well
2018-11-21 22:34:01 +01:00
Darjan Krijan
e8cec5c9e4
Fixed misalignment in JSON string due to space after \n being printed when choosing JSON_C_TO_STRING_SPACED together with JSON_C_TO_STRING_PRETTY in json_object_array_to_json_string
2018-11-20 22:21:27 +01:00
Eric Haszlakiewicz
f8c632f579
Issue #407 : fix incorrect casts in calls to ctype functions (isdigit and isspace) so we don't crash when asserts are enabled on certain platforms and characters > 128 are parsed.
2018-03-25 18:25:58 -04:00
Eric Haszlakiewicz
c652b6ad29
PR#394: fix breakage with VS build.
2017-12-24 14:42:58 -05:00
Eric Haszlakiewicz
d5da847f51
PR#394: don't always append the ".0" if the double value rounds to zero because some custom formats *will* include it (e.g. %.2f).
...
Also try to accomodate formats to explicitly exclude the decimal (e.g. %.0f).
2017-12-24 13:45:52 -05:00
Eric Haszlakiewicz
0992aac61f
Remove the TRUE and FALSE defines.
2017-12-23 09:42:17 -05:00
Björn Esser
c233f5c05e
json_object_private: Use unsigned 32-bit integer type for refcount
2017-12-17 12:51:17 +01:00
Björn Esser
9aca3b6a08
json_object: Avoid invalid free (and thus a segfault) when ref_count gets < 0
2017-12-14 14:36:07 +01:00
Eric Haszlakiewicz
5b6d62259a
Apply gcc's "const" attribute to the json_c_object_sizeof() function as an optimizer hint. Also, rename that function from json_object_sizeof().
2017-12-12 18:26:51 -05:00
Björn Esser
c123a1c21b
json_object: Add size_t json_object_sizeof()
2017-12-11 16:16:15 +01:00
Eric Haszlakiewicz
aedd36ac8b
Make sure to include the "*" on function pointer arguments to avoid a warnings from VS2015. See also PR#384.
2017-12-04 18:17:52 -05:00
ssrlive
2643658b6f
Update json_object.c
2017-12-04 14:46:41 +08:00
Eric Haszlakiewicz
5dae561d33
In json_object_deep_copy(), copy over _userdata, at least for json_type_string's with the default serializer set, and provide a way for people using custom serializers to provide a custom shallow_copy method.
2017-11-29 23:35:38 -05:00
Eric Haszlakiewicz
437716c5b4
Rename _set_last_err() to _json_c_set_last_err().
2017-11-29 09:36:53 -05:00
Eric Haszlakiewicz
4dd92180c6
Merge branch 'json_deep_copy' of https://github.com/commodo/json-c into commodo-json_deep_copy
2017-11-29 09:12:59 -05:00
Eric Haszlakiewicz
3628f16dd6
Rename json_object_add_int() to json_object_int_inc() and eliminate the "int64" variant since we store 64-bit values internally anyway.
2017-11-27 17:57:36 -05:00
Alexandru Ardelean
bf80d5ad0e
json_object: implement json_object_deep_copy()
...
Because doing `json_tokener_parse(json_object_get_string(src))`
feels sloppy, dirty, and makes me want to cry at night
sometimes.
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com >
2017-11-27 16:17:48 +02:00
Juraj Vijtiuk
1110e84cce
Add json_object_add_int functions
2017-09-14 09:36:12 -04:00
Kurt Schwehr
d9879c2533
Fix double to int cast overflow in json_object_get_int64.
...
Found with autofuzz in GDAL
2017-09-11 07:23:00 -07:00
Jason King
e3fabe9a44
Add long long 64-bit check
2017-09-08 01:46:06 +00:00
Haffon
b301f4ea01
rollback api to 0.12
2017-09-07 10:02:21 +08:00
Haffon
86a3a6475f
Merge pull request #2 from json-c/master
...
merge upstream
2017-09-07 09:33:07 +08:00
Eric Haszlakiewicz
548d000891
Undo a bit of 2d1da5ab: handle per-thread formats for double serialization, even if --enable-threading wasn't specified.
2017-09-05 01:56:42 -04:00
Eric Haszlakiewicz
2d1da5ab13
Add a --enable-threading configure option, and only use the (slower) __sync_add_and_fetch()/__sync_sub_and_fetch() function when it is specified.
2017-09-03 23:37:12 -04:00
Eric Haszlakiewicz
5b11e9adff
Explicitly check for GCC's atomic functions instead of depending on the __GNUC__ define.
...
Add a comment mentioning the limitation even though the _ref_count value is hanled atomically.
2017-09-02 14:48:17 -04:00
Eric Haszlakiewicz
ab0d4dbc69
Merge branch 'pull-211'
...
This is EmielBruijntes' "Atomic updates for the refcount"
2017-09-02 13:54:15 -04:00
Haffon
95e174e2fb
Merge pull request #1 from json-c/master
...
want to merge the original repository
2017-08-30 00:02:59 +08:00