112 Commits

Author SHA1 Message Date
Milo Yip
7708215b60 Try to fix #313 again 2015-04-25 00:13:09 +08:00
Milo Yip
735354efd3 Separate handling for pos/neg exp and improve pos exp overflow 2015-04-24 22:50:42 +08:00
Milo Yip
93d13ad2ac Fix #313 Assertion In Pow10.h is triggered in Document::Parse 2015-04-24 21:44:42 +08:00
miloyip
22021d6622 Converts tabs to spaces 2015-04-16 10:15:23 +08:00
thebusytypist
6ef29ff431 Fix warning about unused argument. 2015-04-15 16:09:29 +08:00
thebusytypist
5ae48a0380 Assert on impossible state transition in Transit(); Put the last case and all non-enumerated cases(also supply assertion for them) in for code coverage. 2015-04-15 15:21:42 +08:00
thebusytypist
399333226b Use assertion for impossible case(The Predict() can ensure the token is ColonToken, otherwise it would be marked as Error state. So there is no need to check ColonToken again). 2015-04-15 14:54:44 +08:00
Milo Yip
5ae85e67f6 Yet two more warnings 2015-04-11 00:41:09 +08:00
Milo Yip
b7e34100ed Fix #288 double quote in unicode escape 2015-04-10 20:36:27 +08:00
Milo Yip
d1959ba6e3 Change copyright owner and related changes. 2015-04-03 12:57:16 +08:00
Philipp A. Hartmann
38dace775c warning fixes (closes #235, closes #236) 2015-02-07 14:49:25 +01:00
Drew Noakes
41f3c60b22 Use aligned SSE register load intrinsic.
The code goes to the trouble of ensuring that data is aligned at a
16-byte boundary, then goes ahead and uses the unaligned form of the
load intrinsic _mm_loadu_si128.

Either the code shouldn't bother aligning the data to the start of the
whitespace, or it should use the aligned form of the intrinsic.
2015-01-24 23:43:30 +00:00
Philipp A. Hartmann
0ee38bc918 Reader::Parse{Array,Object}: simplify switch
Closes #223.
2015-01-11 18:46:58 +01:00
Milo Yip
23b7a5ecae Add RAPIDJSON_PARSE_DEFAULT_FLAGS for customizing kParseDefaultFlags
https://github.com/miloyip/rapidjson/issues/120#issuecomment-54428797
2014-11-30 18:52:48 +08:00
Milo Yip
57b91300fb Merge remote-tracking branch 'origin/master' into issue120floatprecision_customstrtod
Conflicts:
	include/rapidjson/internal/dtoa.h
	test/unittest/readertest.cpp
2014-11-14 22:23:16 +08:00
Philipp A. Hartmann
549dcb755d *.h: move to namespace macros 2014-11-06 20:52:49 +01:00
Milo Yip
475b242087 Minor refactoring before optimization trial 2014-09-16 19:38:18 +08:00
miloyip
b29acfb90d Limit significand to 17 digits for fast path
Should fix gcc debug error in tranvis. May need further refactoring.
2014-09-15 15:54:15 +08:00
Milo Yip
4bd240abee Implementing custom strtod, fail on some cases [ci skip] 2014-09-12 23:03:20 +08: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
a71f2e60ff Optimize ParseNumber() 2014-09-05 19:51:20 +08: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
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
0f4071046f fix simplereader.cpp and the Key()->String() forwarding in BaseReaderHandler 2014-09-04 15:30:44 +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
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
miloyip
4f81c873a6 Optimize SkipWhitespace_SIMD()
Do unaligned non-SIMD matching first, and then SIMD matching later.
Also add a fast path for no skipping.
2014-08-20 17:49:30 +08:00
miloyip
fdc2b569db Optimize number parsing for 64-bit architecture 2014-08-20 15:17:21 +08:00
Philipp A. Hartmann
1621ba3a41 add Doxygen documentation for error handling customization 2014-08-19 19:13:01 +02:00
Milo Yip
2e23787753 Change Reader/Writer's stack allocator to CrtAllocator 2014-08-17 18:31:41 +08:00
miloyip
126e62ed25 Fix #104 ParseNumberHandler fails on 32-bit
Use a tighter bound.
2014-08-13 14:16:29 +08:00
Philipp A. Hartmann
453eda5f94 tabs to 4 spaces (following 0dbcc1cf) 2014-08-11 17:22:11 +02:00
Philipp A. Hartmann
3755470f0f BaseReaderHandler: allow overriding of Default() implementation
By adding an optional CRTP template parameter, the BaseReaderHandler
can call the "overridden" `Default()` function from the `Derived`
class.

See https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern
2014-08-11 17:15:07 +02:00
Philipp A. Hartmann
c9f2715115 Reader: drop object/array root restrction from iterative parser 2014-08-11 17:14:31 +02:00
Philipp A. Hartmann
edccda00bd drop object/array root restriction from recursive parser 2014-08-11 17:14:31 +02:00
Milo Yip
0dbcc1cf2e Add license and change indents from tab to space. 2014-08-11 22:26:45 +08:00
Milo Yip
6978778884 Change double parsing with fast-path conversion
Accurate rounding in normal numerical ranges, also reduce lookup table
size.
2014-08-09 21:11:37 +08:00
Milo Yip
5e5fb7b3d8 Change UINT64_C() to RAPIDJSON_UINT64_C2()
Fix #94
2014-08-08 21:34:43 +08:00
Milo Yip
808d362b88 Fix parsing numbers which are less than 1e-308
Overflow should check sign of exponent.
2014-07-30 23:27:17 +08:00
miloyip
a32e2ac1d0 Fix SIMD page fault by using aligned load 2014-07-29 16:05:54 +08:00
Milo Yip
c81386413b Add kParseStopWhenDoneFlag, its implementation and related unit tests 2014-07-27 17:10:32 +08:00
thebusytypist
4a152646d9 Fix compilation error for gcc/clang. 2014-07-18 00:12:04 +08:00
thebusytypist
fa25f93ddb Merge remote-tracking branch 'upstream/master' into TransitionTable 2014-07-16 23:16:33 +08:00
thebusytypist
b22a89bf3f Reduce times of stack size check; reduce transition table size. 2014-07-16 22:09:50 +08:00