| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
Force binary file mode in util.lua to fix the utf8.dat test under
Windows.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Bump version to 2.0devel due to significant changes and updated API
(runtime config not fully backwards compatible).
|
|
|
|
| |
Simply string.format() calls with OO method notation.
|
|
|
|
|
|
| |
Fix runtests.sh after:
- "util" module moved to lua/cjson
- "version" removed
|
|
|
|
|
|
| |
Create separate tests for numbers with leading zeros. This allows the
earlier "normal" number test to pass. Also update hexadecimal test to use
the "p" exponent format.
|
|
|
|
|
| |
Fix string length returned by built in fpconv_g_fmt() so it doesn't
include the trailing null when converting numbers |x|<1.
|
|
|
|
|
|
|
|
|
|
| |
Unlike "decode", encoding leaves both the key/value on the stack before
descending. This leaves no spare room for luaL_error() in case the depth
check or lua_checkstack() fails. Allocate an extra stack slot to ensure there is always room for
luaL_error() in json_check_encode_depth().
Note: this would not have caused a crash or fault due to the EXTRA_STACK
slot reserve, but it was a misuse of the Lua C API.
|
|
|
|
|
|
| |
Add an RPM %preun script to remove utf8.dat. Otherwise the user
generated test file will cause RPM to leave behind the cjson/tests
module directories.
|
|
|
|
|
|
| |
Remove deprecated "refuse_invalid_numbers" since the version number will
be bumped to 1.1.0. Also remove "version" variable since it has been
replaced by _VERSION.
|
| |
|
|
|
|
|
|
|
| |
Disable registration of cjson module table global variable in the
default build. Automatically creating a variable in the global namespace
can cause issues for other software and is no longer recommended with
Lua.
|
|
|
|
|
|
| |
Return boolean values from configuration functions to simplify usage in
the common case. Eg,:
if not cjson.encode_invalid_numbers() then .. end
|
| |
|
|
|
|
|
|
|
|
|
| |
Include depth and character index when throwing decode nesting errors.
Pre-emptively add a test decoding a massively nested JSON array. Lua
stack overflow faults are unlikely to occur on simple data structures.
Valgrind can highlight stack allocation bugs with complicated JSON even
if the test succeeds.
|
|
|
|
|
|
|
|
|
| |
Ensure there are enough Lua stack slots available before descending into
another table during encoding. This fixes a segfault when encoding
deeply nested tables.
This bug wasn't noticed earlier due to the previous limit of 20 nested
tables.
|
| |
|
| |
|
|
|
|
|
| |
Add "throw error" to descriptions for tests which are intended to
generate errors.
|
|
|
|
|
|
|
| |
- Update comments
- Use enumerated return values
- Test various configuration API errors
- Test resetting configuration to default
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Rearrange test sections to keep more related tests together.
- Test configuration functions for errors
Add tests for more parts of the Lua CJSON API:
- _NAME, _VERSION, version
- encode_keep_buffer
- encode_number_precision
- decode_invalid_numbers
- decode_max_depth
|
|
|
|
|
| |
Make the tests more explicit, the nested data structure doesn't need to
be generated in advance.
|
|
|
|
| |
Move all test data into a single data to tidy the main namespace.
|
|
|
|
| |
Rewrite test framework and add descriptions for all tests.
|
|
|
|
|
|
|
| |
Simplify configuration functions by adding an argument position
parameter to json_enum_option() and json_integer_option(). Create
json_arg_init() to check the number of arguments and return the config
data.
|
|
|
|
| |
Also ensure cjson.decode() only receives a single argument.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Increase the default nesting limits to reduce the chance of accidently
throwing an error on valid JSON out of the box.
|
|
|
|
|
|
|
|
|
| |
Update benchmark script to average the best half (round up) of the
result set. Ensure the initial call rate is calculated from a run of at
least 1ms.
Remove garbage collection control since any variations due to garbage
collection are better handled by averaging multiple results.
|
|
|
|
|
| |
Use static strtod() buffer where possible to improve performance 5-10%
under locales with a comma decimal point.
|
|
|
|
|
| |
Deprecate and replace refuse_invalid_numbers() with
encode_invalid_numbers() and decode_invalid_numbers().
|
|
|
|
|
|
|
|
|
|
|
| |
Lua 5.2 is able to extend the Lua stack much further than earlier
versions. Recent testing shows it is possible for Lua CJSON to hit the
process stack limit and segfault. Add a configurable JSON object/array
nesting limit to prevent running out of process stack space.
The current limit is 20 (same as encode).
Add decode_max_depth() configuration function.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Add install-extra make target to install cjson.util module, extra
scripts and tests.
Use "cp" / "chmod" instead of "install" since they are more portable.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Track pointer to the current location in the JSON string, instead of
an index to the string array. Improves decode performance 1-10%.
json_next_token():
- Clean up white space handling and leave "ch" containing the current
non-whitespace character.
|
|
|
|
|
|
| |
- Select via JSON_MODULE environment variable (default "cjson")
- Custom runtime configuration can be stored in bench-MODNAME.lua
- Add run_script() to cjson-misc and update lua2cjson.lua
|
|
|
|
|
| |
- Provide build options for USE_INTERNAL_DTOA and MULTIPLE_THREADS
- Link module with Lua library under Windows
|