Max Bruckner
415962da34
Merge pull request #109 from DaveGamble/simplify-parse
Simplify parsing
8 years ago
Max Bruckner
b41264d164
Remove uint8_t because it's not part of C89
8 years ago
Max Bruckner
0f271dcf63
parse_hex4: make input pointer const
8 years ago
Max Bruckner
ead389aba2
parse_value: improve variable names + const correctness
8 years ago
Max Bruckner
698dc528f4
parse_object: improve variable names + const correctness
8 years ago
Max Bruckner
3dc6339025
parse_array: improve variable names + const correctness
8 years ago
Max Bruckner
15592c50f6
parse_number: improve variable names + const correctness
8 years ago
Max Bruckner
efb5e1bc93
parse_string: Improve const correctnes of pointers
8 years ago
Max Bruckner
ace5047782
parse_string: reduce mental burden when reading the code
This restructures parse_string in a way, that you need to keep less
state in your head to understand the code.
This is achieved by:
* only changing the input pointer (current position) at a few places
(not all throughout)
* splitting out the UTF16 handling into a separate function
* renaming the variables so you know what they do without additional
context
8 years ago
Max Bruckner
03f23738bb
parse_object: simplify to one do-while loop
8 years ago
Max Bruckner
24dbf29360
parse_array: simplify to one do-while loop
8 years ago
Max Bruckner
b6974ecbc9
Makefile: Update compiler options
8 years ago
Max Bruckner
12b2daccf3
parse_{object,array}: set child only after parsing
This only attaches the parsed linked lists to the items passed to
parse_object and parse_array.
8 years ago
Max Bruckner
f8d0c47bdb
Remove unnecessary assignment and silence clang analyzer
8 years ago
Max Bruckner
9f6fa94c91
ensure: replace pow2gt with multiplication by two
This replaces the bit fiddling involved with calculating a new buffer
size by just multiplying the required length by two, paving the way to a
complete switch to size_t at a later point in time.
8 years ago
Max Bruckner
123bb1af7b
cJSON: prevent incompatible C and header versions
Introduces a preprocessor directive that aborts the compilation if the
version numbers in the header don't match with the numbers in the c
file.
8 years ago
Max Bruckner
cf862d0fed
implement AddItemToObject using AddItemToObjectCS
8 years ago
Max Bruckner
57d105d498
Merge pull request #108 from DaveGamble/cJSON_Invalid
Add new type cJSON_Invalid
8 years ago
Max Bruckner
5986edba1d
tests: Ensure that failed parsing returns invalid items
8 years ago
Max Bruckner
c6e1a281f9
tests: assertion macros
8 years ago
Max Bruckner
4f58695ed3
tests: extract common functionality to common.c
8 years ago
Max Bruckner
3facca4792
parse functions: Only set type after successful
This sets the type of an item only if parsing was successful.
This means that in case of failure, the item's type will remain to be
cJSON_Invalid.
8 years ago
Max Bruckner
cf48ea8175
New Type: cJSON_Invalid
This assigns the macro cJSON_Invalid to 0.
8 years ago
Max Bruckner
702fd95af3
fix #106 : potentially invalid free in cJSON_AddItemToObject
8 years ago
Max Bruckner
94117a5d23
Fix #105 , double free when parse_string fails
This fixes a double free that happens when calling cJSON_Delete on an
item that has been used by parse_string and it failed parsing the
string.
The double free happens, because parse_string frees an alias of
item->valuestring, but doesn't set item->valuestring to NULL.
8 years ago
Max Bruckner
c3bd4463be
cJSON_Utils: Guard use of %lu format string for size_t
8 years ago
Max Bruckner
9d7e8f1175
cJSON_Utils: Add casts to unsigned long, fix #103
Thanks @rrvirtual for the suggestion.
8 years ago
Max Bruckner
4047de4f6e
fix potential NULL dereferences found by coverity
8 years ago
Max Bruckner
49b9336558
Merge pull request #92 from DaveGamble/tests
Introduce the cunity testing framework
8 years ago
Max Bruckner
d04a2aeccf
README: Document additional CMake options
8 years ago
Max Bruckner
33e01ae087
Add support for Travis-CI
8 years ago
Max Bruckner
a09defec4c
CMake: Add ENABLE_SANITIZERS flag
Enabling this flag enables AddressSanitizer and
UndefinedBehaviorSanitizer
8 years ago
Max Bruckner
21c02cd3e5
CMake: Add Valgrind support
8 years ago
Max Bruckner
5a36b71a80
unity-tests: parse_value
8 years ago
Max Bruckner
9041570eba
unity-tests: parse_object
8 years ago
Max Bruckner
71b05fd4c2
unity-tests: parse_array
8 years ago
Max Bruckner
598b609c45
unity-tests: parse_string
8 years ago
Max Bruckner
b0e5209bde
unity-tests: test parse_hex4
8 years ago
Max Bruckner
7fd536d7e0
unity-tests: parse_number
8 years ago
Max Bruckner
be0951dfa4
Move parse tests from test.c -> parse_example.c
8 years ago
Max Bruckner
86be961bb5
test.c: remove file related code
8 years ago
Max Bruckner
bb60d6def5
cunity: parse_examples: test example files
Test parsing and printing example files
8 years ago
Max Bruckner
896e52255b
CMake: Build unity as library
8 years ago
Max Bruckner
12acc57967
unity: make it work with -Wconversion
8 years ago
Max Bruckner
d19f3ae890
Merge commit '6b9b57be226a505a9c9cdd9ed029f22495ce04ec' as 'tests/unity'
8 years ago
Max Bruckner
6b9b57be22
Squashed 'tests/unity/' content from commit 1782bab
git-subtree-dir: tests/unity
git-subtree-split: 1782bab0bacd349a45bc215ff91f082912cd7a64
8 years ago
Max Bruckner
e65ea3a45b
Merge pull request #101 from DaveGamble/simplify-correctness
Simplify some code and improve correctness
8 years ago
Max Bruckner
87f77274de
cJSON_SetNumberValue: Fix undefined double to int conversion
This might cause slight changes in behavior, but it shouldn't break
anything that is not already broken (for example the original macro
could either return a double, or an integer or whatever depending on if
object is NULL or not.)
8 years ago
Max Bruckner
dded751757
parse_string: remove useless first byte marks for utf8
8 years ago
Max Bruckner
d7b5545748
parse_hex4: deduplicate into a for loop
8 years ago