220 Commits

Author SHA1 Message Date
Milo Yip
0d915644a4 Fixed gcc effc++ warning in dtoa.h 2014-08-09 21:27:32 +08:00
Milo Yip
a7762a3453 Custom dtoa() impleemntation
Modified from Milo's Grisu2 implementation. 99.9% cases return shortest
decimal format.
2014-08-09 21:12:58 +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
0e4f08ea89 Fix a compilation error due to INT64_C 2014-08-08 22:07:02 +08:00
Milo Yip
5e5fb7b3d8 Change UINT64_C() to RAPIDJSON_UINT64_C2()
Fix #94
2014-08-08 21:34:43 +08:00
Milo Yip
41dde39bbc Merge pull request #96 from miloyip/issue91removeelement
Fix #91
2014-08-08 20:42:55 +08:00
Milo Yip
2f9544620b Add UINT64_C() macros for 64-bit integer literals in u64toa() 2014-08-01 00:25:56 +08:00
Milo Yip
c3ad232c3e Fixes size type in Value::operator==() 2014-08-01 00:01:06 +08:00
Milo Yip
9892847021 Update documents about erase member/elements, also added some time complexity information. 2014-07-31 23:58:52 +08:00
Milo Yip
10098319fe Merge pull request #92 from pah/issue91removeelement
Remove for object members, some cleanups for values
2014-07-31 19:19:44 +08:00
Philipp A. Hartmann
fc6d7a59dc GenericValue: rename Erase(ConstMemberIterator) to EraseMember 2014-07-31 13:16:56 +02:00
miloyip
afe59a0db1 Makes StringEqual() more safe by always compares lengths. 2014-07-31 19:08:37 +08:00
Philipp A. Hartmann
96af95c945 GenericValue: add Erase function for object members 2014-07-31 13:03:32 +02:00
Philipp A. Hartmann
c0fcdcc478 GenericValue: use generated assignment/destructor for GenericMember 2014-07-31 13:03:32 +02:00
Philipp A. Hartmann
59fee54f9d GenericValue::Erase: pass ConstValueIterators 2014-07-31 13:03:32 +02:00
Philipp A. Hartmann
9a9c6d6810 GenericValue: improve Erase documentation 2014-07-31 13:03:32 +02:00
Philipp A. Hartmann
6ed9934143 GenericValue: document Array iterator functions 2014-07-31 13:03:32 +02:00
Philipp A. Hartmann
11d31aaa7b fix typo 2014-07-31 13:03:32 +02:00
miloyip
71ae5660ed Revert "Add Erase(ConstValueIterator) and Erase(ConstValueIterator,ConstValueIterator)"
This reverts commit 9ab2621e855a9abb8377520b42d6dfddcd49a8e1.
2014-07-31 18:56:57 +08:00
miloyip
9ab2621e85 Add Erase(ConstValueIterator) and Erase(ConstValueIterator,ConstValueIterator)
As std::vector::erase() overloads added in C++11
2014-07-31 18:53:17 +08:00
miloyip
71c8402549 Add equal-to and non-equal-to operators 2014-07-31 18:43:59 +08:00
miloyip
0f7d2dad51 Add 2 overloads of Erase() for removing elements of array. 2014-07-31 14:22:59 +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
e6f344637b Merge pull request #83 from miloyip/issue75stopwhendone
Issue75stopwhendone
2014-07-28 18:45:06 +08:00
Milo Yip
c545895368 Merge pull request #84 from miloyip/issue79memorystreambuffer
Add MemoryBuffer and MemoryStream
2014-07-28 18:45:00 +08:00
Milo Yip
b60bcc2762 Add MemoryBuffer and MemoryStream 2014-07-27 19:29:57 +08:00
Milo Yip
e09b9d5c05 Merge remote-tracking branch 'origin/master' into issue75stopwhendone 2014-07-27 17:13:32 +08:00
Milo Yip
c81386413b Add kParseStopWhenDoneFlag, its implementation and related unit tests 2014-07-27 17:10:32 +08:00
Milo Yip
2a389ad659 Merge remote-tracking branch 'origin/master' into IterativeParseOptimization 2014-07-27 15:50:16 +08:00
Milo Yip
c4ce48cde9 Merge pull request #80 from miloyip/issue31optimizeitoa
Issue31optimizeitoa
2014-07-27 15:49:36 +08:00
Milo Yip
857865a166 Fix parse error message 2014-07-27 00:36:23 +08:00
Milo Yip
b99a515ef2 Define RAPIDJSON_FORCEINLINE for gcc
Performance boost a lot!
2014-07-26 23:23:52 +08:00
Milo Yip
58e0fb89b2 In iterative parsing, always use SizeType to prevent potential alignment problem on some platforms. 2014-07-26 22:21:06 +08:00
Milo Yip
7fa194d165 Force inline some suitable functions. 2014-07-26 21:56:11 +08:00
Milo Yip
6f382fd907 Cleanup code 2014-07-26 21:51:38 +08:00
Milo Yip
e3e8fea0f3 Remove stack size limit feature
It is not very useful for iterative parsing as the worst case of heap
size is O(n) where n is number of character in JSON, for the worst
synthetic cases. This is reasonable and should not create stack overflow
security problem as in recursive parsing.
2014-07-26 21:40:11 +08:00
Milo Yip
89865cb919 Use lookup table for Tokenize() 2014-07-26 21:23:37 +08:00
Milo Yip
01126defd2 Make Stack::Push() force inline in normal path 2014-07-26 20:28:35 +08:00
Milo Yip
e9597255b4 Make variables in Transit() more localized 2014-07-26 19:14:07 +08:00
Milo Yip
6f1646138a Fixes stack overflow 2014-07-25 00:59:19 +08:00
Milo Yip
86b2f51a58 Use branchlut implementation for itoa conversion. 2014-07-25 00:08:24 +08:00
thebusytypist
4a152646d9 Fix compilation error for gcc/clang. 2014-07-18 00:12:04 +08:00
Milo Yip
46eeb46a61 Implemented faster itoa with bit counting and reverse write 2014-07-17 02:26:20 +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
miloyip
8b963dc7ad Start benchmarking different itoa implementation 2014-07-16 19:14:00 +08:00
thebusytypist
1f53c6c041 Implement stack size limitation for iterative parsing. 2014-07-15 14:16:06 +08:00
miloyip
9974e35578 Merge conflicts and suppress VC warnings 2014-07-15 09:20:19 +08:00
Milo Yip
2d732794f0 Merge pull request #74 from miloyip/issue71endianness
Improves endian detection
2014-07-15 09:00:10 +08:00