cc514583cc
cJSON_Duplicate: goto fail error handling
...
Simplify error handling using goto fail and improve some names.
2017-02-07 20:59:55 +01:00
021b174ee1
parse_object: goto fail error handling
...
Makes the control flow easier to reason about and fixes a few potential
memory leaks.
2017-02-07 20:59:55 +01:00
99cd9af7d5
parse_array: goto fail error handling
...
Makes the control flow easier to reason about and fixes a few potential
memory leaks.
2017-02-07 20:59:55 +01:00
8656386c4f
parse_string: goto fail error handling
...
Makes the control flow easier to reason about and fixes a few potential
memory leaks.
2017-02-07 20:59:55 +01:00
9ed906758e
fix null pointer dereferences found by coverity
2017-02-07 19:07:18 +01:00
ee0c920dff
fix: add break in UTF-16 handling
...
Introducing the switch defaults in an earlier commit made UTF-16 \u
sequence handling broken.
2017-02-04 01:54:56 +01:00
af6d5d3d7c
Add more consts to unsigned chars
2017-02-03 22:41:14 +01:00
cf9d57d56c
Fix incorrect return
2017-02-03 20:34:37 +01:00
3d3bfc6a4d
Compiler flag -Wconversion
...
Makes type conversions explicit, if they alter a value
2017-02-03 18:36:13 +01:00
41e2837df1
Fix potentially undefined behavior when filling valueint
...
If the number is bigger or smaller than the biggest or smallest integer,
the behavior would be undefined.
This commit defines it as saturation behavior.
2017-02-03 18:36:13 +01:00
ecd5678527
Change all internal sizes to size_t
2017-02-03 18:36:12 +01:00
28b9ba4334
Change all internal strings to unsigned char*
2017-02-03 15:59:00 +01:00
b182ced1d6
Compiler flag -Wswitch-default + add defaults
2017-02-03 12:21:36 +01:00
fe18403935
Compiler flag -Wundef + fix incorrect macro
2017-02-03 12:14:50 +01:00
c49ffbfba8
cJSON_Version: returns a version string
...
This is useful to programmatically find out the version of cJSON that
has been used (useful in case of scripting language bindings for
example).
2017-01-12 20:37:29 +01:00
e3e0b5150b
cJSON_CreateRaw: Format fixes
2017-01-05 21:33:52 +01:00
1df987a170
cJSON_strdup: Check for NULL string
2017-01-05 21:31:17 +01:00
ddadb44a67
cJSON_Raw: Additional checks in print_value
2017-01-05 21:30:37 +01:00
8c58e62597
Merge remote-tracking branch 'loigu/master' into cJSON_Raw
2017-01-05 21:07:08 +01:00
fcc89c4bb2
Move increment out of loop condition fixes #85
2016-12-15 11:12:42 +01:00
e69db83de5
Temporarily disable warning when const is cast away.
...
There was a long running discussion here
https://github.com/DaveGamble/cJSON/pull/80 how to provide const
correctness for users of cJSON.
To avoid breaking changes for users of cJSON v1 it was decided to
disable this warning.
pragma was tested with gcc 5.4.0/6.2.1 and clang 3.8/3.9.
2016-12-08 13:21:18 +01:00
5b4420298f
fix memory leak in cJSON_Duplicate
2016-12-05 14:23:04 +03:00
bf17703012
Merge branch 'print_preallocated'
2016-11-28 23:08:25 +07:00
6622c54f18
Handle out of memory when printing string
2016-11-28 23:06:38 +07:00
8df4cd46eb
more concise return
2016-11-28 22:59:55 +07:00
4d1dcaa160
check print_value return
2016-11-28 22:59:54 +07:00
de93d76d0b
changed to cJSON_PrintPreallocated, added flag in printbuffer
2016-11-28 22:59:53 +07:00
23dafa4739
added Print function call for pre-allocated buffer
2016-11-28 22:53:33 +07:00
038b04d80a
Take out len from condition check.
...
Otherwise, the check is just undefined behaviour. gcc even takes out
this check because len can never be zero if len does not wrap around.
Found with -Wstrict-overflow=2
2016-11-28 09:11:14 +01:00
23b269d5f9
Rename bool -> cjbool, fix #71
2016-11-25 08:19:18 +07:00
679004914f
Define a boolean type
...
This is not changing the behavior of the code, but it is improving the
readability and helps to make the intention clearer.
One thing to take care: 'true' should never be compared against.
2016-11-19 17:29:22 +07:00
b88da9b0de
Initialize all variables
2016-11-19 17:29:21 +07:00
a5ff796c20
Replace 0 with more expressive NULL or '\0'
2016-11-19 17:28:14 +07:00
dc4b62915a
fix #10 , now failing on incorrect escape sequences
2016-11-14 19:33:03 +07:00
afd690d1c9
format fix
2016-11-14 19:14:14 +07:00
06008b0444
add support to insert raw json
2016-11-14 11:20:10 +01:00
0d10e279c8
fix #55 memory leak in cJSON_ReplaceItemInObject
2016-11-11 11:53:14 +07:00
a148520ffb
Revert "Fix #26 : Use long double literal for 1e60"
...
This reverts commit 3ea491c0a6
.
2016-11-08 00:53:16 +07:00
b4d728d018
pow2gt: Detect integer size fix #27
2016-11-07 20:09:58 +07:00
3ea491c0a6
Fix #26 : Use long double literal for 1e60
...
Big thanks at mvollmer (https://sourceforge.net/p/cjson/bugs/45/ )
2016-11-05 21:26:18 +07:00
4d06882c68
Merge pull request #44 from iMobs/arm_compilation
...
ARM Compilation
2016-11-01 08:42:45 +07:00
5323f558cd
don't ignore malloc failure in cJSON_PrintBuffered
2016-10-31 10:54:34 +11:00
a1c022fef6
Merge pull request #37 from DaveGamble/reformatting
...
Reformat cJSON_Utils.c and test.c
2016-10-29 22:52:55 +07:00
ddeca82718
reformatting: cJSON.c: fix indentation
2016-10-29 22:44:45 +07:00
9f00ff9a91
Remove redundant test from cJSON_AddItemToArray
...
The test for whether "c" is null is redundant. Since this is the else case of "(!c)", and the only way "c" is changed is by the instruction assigning it "c->next" on the condition here, simply verifying that "c->next" isn't null is sufficient.
2016-10-27 20:02:44 -07:00
d4836effc9
Fix compiler warning "array subscript has type char" when using arm-none-eabi-gcc
2016-10-17 17:20:57 -07:00
b393b3beeb
Add const qualifier for non-destructive functions
...
Functions like cJSON_Print do not and should not modify the object passed
to them.
2016-10-07 15:42:11 -07:00
34388c2d4c
reformatting: cJSON_Minify
2016-10-02 19:04:30 +07:00
9adc6e7fe1
reformatting: cJSON_Duplicate
2016-10-02 19:04:30 +07:00
e6fd236f00
reformatting: cJSON_CreateStringArray
2016-10-02 19:04:29 +07:00