Max Bruckner
6815d96617
print_number: rename variables
8 years ago
Max Bruckner
61921498d0
print_number: remove special case for 0
Now that printbuffer is used for everything, it's not needed anymore.
8 years ago
Max Bruckner
4758d62fd4
Merge pull request #113 from DaveGamble/printbuffer-only
Always print with printbuffer
8 years ago
Max Bruckner
1bc1a9748a
Merge pull request #112 from DaveGamble/print-tests
Add tests for print functions
8 years ago
Max Bruckner
de36476092
tests: print_value
8 years ago
Max Bruckner
983a4cd286
tests: parse_objects: Fix name of test
8 years ago
Max Bruckner
b6abef94ff
tests: print_object
8 years ago
Max Bruckner
3d66766231
tests: print_array
8 years ago
Max Bruckner
924122904e
tests: print_number
8 years ago
Max Bruckner
87691a86e5
cJSON_SetNumberValue: Fix compiler warning with -Waddress
8 years ago
Max Bruckner
8aa324fdc8
tests: print_string
8 years ago
Max Bruckner
3c4d309f62
ensure: Don't accept empty printbuffers anymore
8 years ago
Max Bruckner
9bf531ca05
Remove printing without buffer
8 years ago
Max Bruckner
80354bdb06
cJSON_Print: Use printbuffer
8 years ago
Max Bruckner
fe2e0956ad
Merge pull request #111 from DaveGamble/fuzzing
partial build system integration of the afl fuzzing tool
8 years ago
Max Bruckner
cf71f3d627
fuzzing: script to prepare linux kernel for afl
8 years ago
Max Bruckner
da551c753f
fuzzing: Speed up afl using persistent mode (in proccess fuzzing)
8 years ago
Max Bruckner
ae4681b787
fuzzing: use llvm source code instrumentation
8 years ago
Max Bruckner
c5a09a32a9
fuzzing: Fuzz different print methods
This is achieved by encoding the type of function used in the first two
bytes.
First byte:
b: buffered
Second byte:
f: formatted
8 years ago
Max Bruckner
4785070ad3
fuzzing: Fuzz printing as well.
With one big limitation: It can only be fuzzed with what has been
parsed by the library beforehand.
8 years ago
Max Bruckner
0e0cd5bae5
CMake: Add ENABLE_FUZZING and "afl" target
8 years ago
Max Bruckner
44512f643e
Merge pull request #110 from DaveGamble/ensure-improvements
ensure improvements
8 years ago
Max Bruckner
331c18d09a
ensure: only memcopy what's necessary
We don't need to copy the entire printbuffer, only the part that is
used.
8 years ago
Max Bruckner
4fff92140e
ensure: use realloc if possible
8 years ago
Max Bruckner
fc1d4b07df
ensure: if printbuffer is null: cJSON_malloc
This allowed for the removal of a lot of if (p) checks.
8 years ago
Max Bruckner
bd073343fa
rename skip -> skip_whitespace
8 years ago
Max Bruckner
7c722dca5f
CMake: Add target "check" that builds and runs tests
8 years ago
Max Bruckner
4fce9cce86
Release version 1.3.0
8 years ago
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