1
0
mirror of https://github.com/nlohmann/json.git synced 2025-07-28 12:02:00 +03:00
Commit Graph

1778 Commits

Author SHA1 Message Date
c8a6ce79ea 🚑 fixing fuzzers to work with new exceptions 2017-03-08 18:37:03 +01:00
fc9b528ec9 🔨 changed an exception 2017-03-08 18:07:21 +01:00
8fcd01631f improved test coverage
Tests for parse_error.109 were missing.
2017-03-08 16:39:17 +01:00
625cf7e3f7 🔨 added user-defined exception 112 2017-03-07 20:05:34 +01:00
757d2c6c7a 🔨 replaced at() calls in msgpack/cbor 2017-03-06 23:45:08 +01:00
5407333224 🔨 added user-defined exception 111 2017-03-06 22:37:46 +01:00
21ec0e7806 🔨 added user-defined exception 110 2017-03-06 21:00:13 +01:00
a186106bde 🔨 user-defined exception 302
Also moved all exception classes into the detail namespace and
introduced them via “using” into basic_json.
2017-03-06 19:34:44 +01:00
38c2e20ce8 added user-defined exceptions 404-405 2017-03-05 23:25:22 +01:00
30331fa21f 🔨 added user-defined exception 403 2017-03-05 23:16:17 +01:00
60da36aee2 🔨 added user-defined exceptions 401-402 2017-03-05 22:56:39 +01:00
491c9780a7 🔨 added user-defined exception 311 2017-03-05 22:39:21 +01:00
6751d650be 🔨 added user-defined exception 311 2017-03-05 22:31:08 +01:00
9e560ca40c 🔨 added user-defined exceptions 313-315 2017-03-05 19:58:26 +01:00
144cf6a4c7 🔨 added user-defined exceptions 310 2017-03-05 19:48:11 +01:00
5cca44c161 🔨 added user-defined exceptions 309 2017-03-05 19:42:05 +01:00
70b2c3f45e 🔨 added user-defined exceptions 308 2017-03-05 19:35:24 +01:00
2a9393af00 🔨 added user-defined exceptions 307 2017-03-05 19:26:44 +01:00
bb740c43fb 🔨 added user-defined exceptions 306 2017-03-05 19:15:56 +01:00
aa842b4a27 🔨 added user-defined exceptions 305 2017-03-05 19:08:12 +01:00
f473f74fb0 🔨 added user-defined exceptions 303-304 2017-03-05 18:56:35 +01:00
068c7acda9 🔨 added user-defined exceptions 301 2017-03-05 18:40:09 +01:00
0c40c8e3be 🔨 added user-defined exceptions 2xx 2017-03-03 14:34:57 +01:00
a4274d7766 🔨 added user-defined exceptions 205-206 2017-03-03 14:00:42 +01:00
875b2da95d 🔨 added user-defined exceptions 203-204 2017-03-03 13:38:14 +01:00
9381f6c4da 🔨 added user-defined exceptions 201-202
Started implementing exceptions for invalid iterators.
2017-03-03 13:19:45 +01:00
e291c6c3d2 Merge branch 'develop' into feature/exceptions_3.0.0 2017-03-03 12:59:37 +01:00
a1354184ce 📝 fixed typo #481 2017-03-03 12:56:54 +01:00
0c6b1f8a24 Merge branch 'develop' into feature/exceptions_3.0.0 2017-03-03 12:54:45 +01:00
776758d7a2 🔨 added user-defined exception 109
This exception occurs when a JSON pointer contains an array index that
can not be converted into a number.
2017-03-03 12:54:37 +01:00
b86d2148ef 🔨 added user-defined exceptions 106-108
These exceptions occur when JSON pointers are malformed.
2017-03-03 11:56:58 +01:00
06c788e4fd 📝 added missing word 2017-03-03 10:01:16 +01:00
01d3a006b1 ⬆️ updated Catch to v1.8.1 2017-03-02 18:13:19 +01:00
06815d274e 🔨 added user-defined exceptions 104 and 105
These exceptions are thrown in case of parse errors in JSON patch
documents.
2017-03-02 17:55:13 +01:00
c085e3bac2 🔨 started with user-defined exceptions #301 #244
Added class hierarchy for user-defined exceptions (#244). Integrated
parse exceptions 101-103. Parse exceptions include the byte count of
the last read character to locate the position of the error (#301).
2017-03-01 21:28:44 +01:00
7b8fd864e2 🔥 removed deprecated constructor #480
The constructor basic_json(std::istream&, const parser_callback_t) has
been deprecated since version 2.0.0. This commit removes it together
with its code example, deprecation macro, and test cases. The code now
also compiles with -W-deprecated-declarations.
2017-03-01 17:49:03 +01:00
6b3912d936 📝 added note to 3.0.0 wiki page #474
I created a wiki page
https://github.com/nlohmann/json/wiki/Road-toward-3.0.0 to describe the
transition toward version 3.0.0. On this page, all API-breaking changes
shall be documented.
2017-03-01 17:26:32 +01:00
f84ac523aa 📝 added a note to ordered maps
The library does not preserve the insertion order of object keys. There
are frequent requests to change the library in this aspect. The README
and the contribution guidelines now contain links to containers that
can be used to replace std::map to preserve the insertion order.
2017-03-01 10:15:07 +01:00
41f9b32554 🔀 merge branch 'feature/serialization_class' into develop (#418)
Moved all dump()-related functions into a class "serializer". This fix includes a lot of performance improvements yielding a 7% speedup for serialization. Details on the individual steps can be found in the commit messages.

Individual benchmark numbers:

before:

dump jeopardy.json                            5   374555228 ns/op
dump jeopardy.json with indent                5   430953700 ns/op
dump numbers/floats.json                      5   622938509 ns/op
dump numbers/signed_ints.json                20    82177979 ns/op

after:

dump jeopardy.json                            5   335449757 ns/op -11%
dump jeopardy.json with indent                5   375467773 ns/op -13%
dump numbers/floats.json                      5   584611852 ns/op -7%
dump numbers/signed_ints.json                20    68289574 ns/op -17%
2017-02-28 21:04:16 +01:00
d69242c6ba 💄 cleanup
- Added comments for the serializer class.
- Added test case for resizing of the indentation string.
- Using std::none_of to check if “.0” needs to be added to
floating-point number.
2017-02-28 19:20:50 +01:00
059f21aada 💄 fixed a warning
snprintf returns an int, but we later assign it a difference_type which
is usually a long.
2017-02-28 17:24:03 +01:00
224f99070b micro-optimization of dump()
A lot of small changes to avoid memory allocations:

- The locale is only queried once rather than with every number
serialization.
- The indentation string is recycled between different calls.
- The string escape function avoids a copy if no escaping is necessary.
- The string escape and the space function use a complete switch case
instead of cascaded ifs.

Cachegrind measures some 15% performance improvement.
2017-02-28 16:28:22 +01:00
fc48b8ac2b 🐛 fixed a logical error
Treated the size of the range as the number of thousand separators.
This logical error yielded a negative value for written_bytes and
eventually an infinite loop, as written_bytes was converted to an
unsigned value.
2017-02-28 11:45:38 +01:00
af070744ae 🔨 integrating numtostr into serializer class
By merging numtostr into serializer, we can write directly to the
output stream. As a consequence, all stream calls are now unformatted.
2017-02-27 22:10:57 +01:00
54ef5f7b47 🔨 moved serialization functions to serializer class
The class is currently just a wrapper for an std::ostream and collects
all functions related to serialization. The next step should be
recycling of variables to avoid repetitive initialization for each
recursive dump call.
2017-02-27 21:22:39 +01:00
9c4919ff34 " micro-optimizations for dump()"
This reverts commit 909b439b03.
For some strange reason, the test suite crashes when compiled
with GCC.
2017-02-27 16:19:07 +01:00
909b439b03 micro-optimizations for dump()
numtostr now directly writes to a stream. Return value of snprintf is
reused to avoid finding end of string. Cachegrind suggests a 1%
performance increase.
2017-02-27 14:58:10 +01:00
0f04e42dd5 micro-optimizations for dump()
All ‘<<‘ calls have been replaced by write()/put() calls. The
indentation strings needs not to be resized. Cachegrind measures 1%
performance improvement.
2017-02-27 01:22:24 +01:00
b1441f3485 micro-optimizations for dump()
Indentation string is recycled to avoid allocations. Comma-separation
in objects does not need an if any more. Cachegrind measures 1%
performance improvement.
2017-02-26 20:58:00 +01:00
bd0326cbc1 micro-optimizations for dump()
Added separate code paths for normal output and pritty-printed output.
This allowed to remove most of the ifs along the way. Benchmarks and
cachegrind suggest a 10% performance improvement.
2017-02-26 16:55:54 +01:00