Milo Yip
fa52a26909
Fix a unit test warning and suppress a failing case
2014-09-14 12:52:07 +08:00
Milo Yip
4c2128818f
Add 32-bit support for custom strtod
2014-09-14 12:42:58 +08:00
Milo Yip
855da06d0f
Makes gcc x64 runnable, but failed on one case. [ci skip]
2014-09-14 10:52:33 +08:00
Milo Yip
98dd0a0a64
Make custom strtod work for denormal numbers and some boundary cases [ci skip]
2014-09-13 23:24:40 +08:00
Milo Yip
4bd240abee
Implementing custom strtod, fail on some cases [ci skip]
2014-09-12 23:03:20 +08:00
Milo Yip
2475e9524b
Merge pull request #140 from kojik1010/mempool_null_check
...
make MemoryPoolAllocator's Malloc work after Clear if a buffer was not supplied by the user
2014-09-11 16:52:36 +08:00
Koji Kobayashi
a69dffbc53
make MemoryPoolAllocator's Malloc work after Clear if a buffer was not supplied by the user
2014-09-10 20:35:23 -07:00
Milo Yip
359ebc78c0
Extract conversion code to strtod.h [ci skip]
2014-09-10 23:36:09 +08:00
miloyip
30ea2a32d1
Prepare custom strtod data. (cannot pass unit test) [ci skip]
2014-09-10 18:54:41 +08:00
miloyip
774a4aa2b2
Fix VC2010 which don't have std::isnan() et al.
2014-09-10 09:28:52 +08:00
Milo Yip
a5ffc5be1c
Merge pull request #139 from pah/fixes/stack-growth-factor
...
Stack: adjust growth factor
2014-09-09 19:18:30 +08:00
Philipp A. Hartmann
296c7db140
Stack: adjust growth factor
...
The growth factor for the `internal::Stack` helper has not been updated
together with the growth factors used in GenericValue (#130 ).
2014-09-09 10:49:40 +02:00
Milo Yip
7cca533971
Update readme.md
2014-09-09 14:05:57 +08:00
miloyip
d0f98d2da1
Fix a bug in dtoa on gcc
...
Discovered in https://github.com/miloyip/dtoa-benchmark/issues/1 with
assertion fail.
2014-09-07 15:20:09 +08:00
Milo Yip
86d63ff10c
Update document for kParseFullPrecisionFlag
2014-09-06 10:28:54 +08:00
miloyip
add0d9c8f9
Compute error statistics of normal precision
2014-09-05 22:18:40 +08:00
miloyip
c4a657d430
Fix ParseNumber_Integer test
2014-09-05 20:06:03 +08:00
miloyip
a71f2e60ff
Optimize ParseNumber()
2014-09-05 19:51:20 +08:00
Milo Yip
c4a1566a4e
Merge pull request #136 from Kosta-Github/Kosta/doc_key_method
...
fix `SAX` documentation to also mention the new `Key()` method in the `Handler` concept
2014-09-05 17:08:54 +08:00
Kosta
8e624133bb
fix SAX
documentation to also mention the new Key()
method in the Handler
concept
2014-09-05 10:33:20 +02:00
Milo Yip
881c91d696
Merge master and implement kParseFullPrecision
2014-09-05 13:22:56 +08:00
Milo Yip
d875f16ad7
Refactor ParseNumber for two modes (incomplete)
2014-09-05 10:45:44 +08:00
Milo Yip
5e03cbf1b3
Merge pull request #134 from Kosta-Github/Kosta/add_key_method
...
add `Key()` method to the `Handler` concept
2014-09-05 09:50:24 +08:00
Kosta
f0d9ab4ec9
finally fixing Reader::ParseString()
...
It was a copy-n-paste error for the last argument of `Key()` and `String()`...
2014-09-04 18:00:05 +02:00
Kosta
00ac1024ee
more changes
2014-09-04 17:37:13 +02:00
Kosta
e70494bc00
fix for Reader::ParseString()
implementation plus some minor code cleanups and additions
2014-09-04 17:29:52 +02:00
Kosta
4a71dc6d58
reunified ParseKey
, ParseString
, and ParseStringOrKey
again
2014-09-04 16:54:01 +02:00
Kosta
25f4892aa1
removed unused argument names
2014-09-04 15:56:21 +02:00
Kosta
8b2faff981
enhance IterativeParsingReaderHandler
to check for Key()
events
2014-09-04 15:51:09 +02:00
Kosta
c8da4d86fc
add Key()->String()
forwarding to the capitalize
example
2014-09-04 15:35:01 +02:00
Kosta
0f4071046f
fix simplereader.cpp
and the Key()->String()
forwarding in BaseReaderHandler
2014-09-04 15:30:44 +02:00
Kosta
23b3d24355
add Key()
to IterativeParsingReaderHandler in
readertest.cpp`
2014-09-04 15:24:52 +02:00
Kosta
17b1a14d62
add Key()
method to Writer
and PrettyWriter
2014-09-04 15:20:05 +02:00
Kosta
57e1c87553
add Key()
method to the Handler
concept
...
For more details see: https://github.com/miloyip/rapidjson/issues/132
This commit tries to minimize the required code changes and forwards the `Handler::Key()` calls to `Handler::String()` wherever possible in order to not break existing code; or at least not code deriving from `BaseReaderHandler` when implementing a custom `Handler`.
2014-09-04 15:14:18 +02:00
miloyip
b0436911a8
Check "fast path cases in disguise" in strtod
2014-09-03 14:45:37 +08:00
miloyip
818f6f1f2e
Add random tests for ParseNumber
2014-09-03 13:27:43 +08:00
Milo Yip
bc9d7866be
Merge pull request #128 from pah/feature/cxx11-move
...
Initial C++11 move support
2014-09-03 09:37:35 +08:00
Milo Yip
15d70d6a7b
Merge pull request #127 from pah/feature/value-different-allocators
...
GenericValue: accept values with different allocators for read-only access
2014-09-03 09:37:15 +08:00
miloyip
0580d42d11
Fallback strtod() when not able to do fast-path
...
This shall generate best possible precision (if strtod() is correctly
implemented). Need more unit tests and performance tests. May add an
option for accepting precision error. Otherwise LUT in Pow10() can be
reduced.
2014-09-03 01:02:38 +08:00
Milo Yip
c6e6bca22f
Merge pull request #130 from pah/fixes/capacity-growth
...
GenericValue: reduce growth factor for array/object reallocations
2014-09-02 22:11:34 +08:00
Milo Yip
9289f3270d
Merge pull request #131 from Kosta-Github/Kosta/short_string_optimization
...
short string optimization
2014-09-02 21:52:10 +08:00
Kosta
08e81097eb
final fix for the unit test case...
2014-09-01 12:54:50 +02:00
Kosta
ba05ea52cf
use rapidjson::Value::SizeType
as the type for storing and comparing the string length
2014-09-01 12:52:36 +02:00
Kosta
609997565c
unit test simplification for short string optimization
2014-09-01 12:46:04 +02:00
Kosta
88debcf02e
typo fixed for the unit test implementation
2014-09-01 12:40:28 +02:00
Kosta
056d0dafe4
add unit test for testing edge cases of the short string optimization
2014-09-01 12:34:43 +02:00
Kosta
697cf407c2
fixed a compiler error not caught by VS2012...
2014-09-01 12:01:25 +02:00
Kosta
d2a374b40c
allow the short string optimization to store one more character
...
The `ShortString` can represent zero-terminated strings up to `MaxSize` chars (excluding the terminating zero) and store a value to determine the length of the contained string in the last character `str[LenPos]` by storing `MaxSize - length` there. If the string to store has the maximal length of `MaxSize` (excluding the terminating zero) then `str[LenPos]` will store `0` and therefore act as the string terminator as well. For getting the string length back from that value just use `MaxSize - str[LenPos]`.
This allows to store `11`-chars strings in 32-bit mode and `15`-chars strings in 64-bit mode inline (for `UTF8`-encoded strings).
2014-09-01 11:52:09 +02:00
Philipp A. Hartmann
0d2761a59c
GenericValue: round up during capacity growth
...
Suggested-by: @miloyip
2014-09-01 11:31:25 +02:00
Kosta
b92d0ebd1b
code cleanup for StringEqual()
...
Instead of replicating the functionality of `GetString()` and `GetStringLength()` in `StringEqual()` it now calls these methods instead.
2014-09-01 11:15:52 +02:00