| @@ -4,14 +4,36 @@ Next Release 0.15 | |||||
| Deprecated and removed features: | Deprecated and removed features: | ||||
| -------------------------------- | -------------------------------- | ||||
| * array_list_new() has been deprecated in favor of array_list_new2() | |||||
| * Deprecate `array_list_new()` in favor of `array_list_new2()` | |||||
| * Remove the THIS_FUNCTION_IS_DEPRECATED define. | |||||
| * Remove config.h.win32 | |||||
| New features | |||||
| ------------ | |||||
| * Add a `JSON_TOKENER_ALLOW_TRAILING_CHARS` flag to allow multiple objects | |||||
| to be parsed even when `JSON_TOKENER_STRICT` is set. | |||||
| * Add `json_object_new_array_ext(int)` and `array_list_new_2(int)` to allow | |||||
| arrays to be allocated with the exact size needed, when known. | |||||
| * Add `json_object_array_shrink()` (and `array_list_shrink()`) and use it in | |||||
| json_tokener to minimize the amount of memory used. | |||||
| * Add a json_parse binary, for use in testing changes (not installed, but | |||||
| available in the apps directory). | |||||
| Other changes | |||||
| -------------- | |||||
| * Add a json_parse binary, for use in testing changes (not installed). | |||||
| * Issue #471: always create directories with mode 0755, regardless of umask. | |||||
| * Added a JSON_TOKENER_ALLOW_TRAILING_CHARS flag to allow multiple objects | |||||
| to be parsed even when JSON_TOKENER_STRICT is set. | |||||
| Build changes | |||||
| ------------- | |||||
| * #639/#621 - Add symbol versions to all exported symbols | |||||
| * #508/#634 - Always enable -fPIC to allow use of the json-c static library in | |||||
| other libraries | |||||
| * Build both static and shared libraries at the same time. | |||||
| * #626 - Restore compatibility with cmake 2.8 | |||||
| * #471 - Always create directories with mode 0755, regardless of umask. | |||||
| * #606/#604 - Improve support for OSes like AIX and IBM i, as well as for | |||||
| MINGW32 and old versions of MSVC | |||||
| * #451/#617 - Add a DISABLE_THREAD_LOCAL_STORAGE cmake option to disable | |||||
| the use of thread-local storage. | |||||
| Significant changes and bug fixes | |||||
| --------------------------------- | |||||
| * Split the internal json_object structure into several sub-types, one for | * Split the internal json_object structure into several sub-types, one for | ||||
| each json_type (json_object_object, json_object_string, etc...). | each json_type (json_object_object, json_object_string, etc...). | ||||
| This improves memory usage and speed, with the benchmark under | This improves memory usage and speed, with the benchmark under | ||||
| @@ -23,9 +45,7 @@ Other changes | |||||
| arrays to the exact number of elements parsed. On bench/ benchmark: | arrays to the exact number of elements parsed. On bench/ benchmark: | ||||
| 9% faster test time, 39%(max RSS)-50%(peak heap) less memory usage. | 9% faster test time, 39%(max RSS)-50%(peak heap) less memory usage. | ||||
| Add json_object_array_shrink() and array_list_shrink() functions. | Add json_object_array_shrink() and array_list_shrink() functions. | ||||
| * Add json_object_new_array_ext(int) and array_list_new_2(int) to allow | |||||
| arrays to be allocated with the exact size needed, when known. | |||||
| * Parsing of surrogate pairs in unicode escapes now properly handles | |||||
| * #616 - Parsing of surrogate pairs in unicode escapes now properly handles | |||||
| incremental parsing. | incremental parsing. | ||||
| * Fix incremental parsing of numbers, especially those with exponents, e.g. | * Fix incremental parsing of numbers, especially those with exponents, e.g. | ||||
| so parsing "[0", "e+", "-]" now properly returns an error. | so parsing "[0", "e+", "-]" now properly returns an error. | ||||
| @@ -34,6 +54,16 @@ Other changes | |||||
| followed by a "-", "." or "e". This makes parsing things like "123-45" | followed by a "-", "." or "e". This makes parsing things like "123-45" | ||||
| behave consistently with things like "123xyz". | behave consistently with things like "123xyz". | ||||
| Other changes | |||||
| ------------- | |||||
| * #589 - Detect broken RDRAND during initialization; also, fix segfault | |||||
| in the CPUID check. | |||||
| * #592 - Fix integer overflows to prevert out of bounds write on large input. | |||||
| * Protect against division by zero in linkhash, when creaed with zero size. | |||||
| * #602 - Fix json_parse_uint64() internal error checking, leaving the retval | |||||
| untouched in more failure cases. | |||||
| * #614 - Prevent truncation when custom double formatters insert extra \0's | |||||
| *** | *** | ||||