528 Commits

Author SHA1 Message Date
Milo Yip
df76c0d6d7 Apply LIKELY/UNLIKELY in Reader 2015-12-31 18:10:17 +08:00
Milo Yip
122c722993 More LIKELY/UNLIKELY in Writer 2015-12-31 16:17:52 +08:00
Milo Yip
bcc3fb6d9e Fix stack reserve bug 2015-12-31 16:07:07 +08:00
Milo Yip
ef6957c177 PutReserve() and PutUnsafe() optimisation for Writer 2015-12-31 15:30:28 +08:00
Milo Yip
1a21379e3c Merge branch 'master' into optimization 2015-12-31 09:23:38 +08:00
Milo Yip
81c07721cb Try to fix clang and gcc warnings problems again x10 2015-12-18 20:38:08 +08:00
Milo Yip
5c003f3ecb Try to fix clang and gcc warnings problems again x9
Abandon RAPIDJSON_NORETURN_SUFFIX
2015-12-18 20:34:46 +08:00
Milo Yip
efdbdc6016 Try to fix clang and gcc warnings problems again x8 2015-12-18 20:26:34 +08:00
Milo Yip
6d6381f596 Try to fix clang and gcc warnings problems again x7 2015-12-18 20:15:11 +08:00
Milo Yip
6e08e760fc Try to fix clang and gcc warnings problems again x5 2015-12-18 19:57:43 +08:00
Milo Yip
d6478991d0 Try to fix clang and gcc warnings problems again x4 2015-12-18 19:54:10 +08:00
Milo Yip
a6a73b51b5 Try to fix clang and gcc warnings problems againx2 2015-12-18 19:36:51 +08:00
Milo Yip
9ce381b801 Try to fix clang and gcc warnings problems again 2015-12-18 19:15:51 +08:00
Milo Yip
17f2ca6913 Try to fix clang and gcc warnings problems 2015-12-18 19:04:09 +08:00
Milo Yip
74c8dcfd57 Fix clang -Weverything 2015-12-18 18:34:04 +08:00
Philipp A. Hartmann
7899a3c125 encodings.h: fix typo in preprocessor condition (closes #494) 2015-12-16 09:40:39 +01:00
Michael Haubenwallner
e706397861 detect little endian for Microsoft ARM targets
When _MSC_VER and _M_ARM is defined, this is some Windows ARM target
using little-endian byte order.
2015-12-04 17:54:45 +01:00
Michael Haubenwallner
5b268e6508 use <wchar.h> with C++ linkage on Windows ARM
Instead of commenting that we should, just do include <wchar.h>
with C++ linkage when compiling for Windows on ARM.
Actually, omitting the C linkage really should be enough here.
2015-11-30 17:34:29 +01:00
Milo Yip
28f2ed00d9 Merge pull request #484 from miloyip/Issue483_PointerValue
Fix #483 by using the correct value type
2015-11-30 17:37:58 +08:00
Milo Yip
db0a03a43c Fix #483 by using the correct value type 2015-11-30 17:22:06 +08:00
Philipp A. Hartmann
98959e2820 GenericDocument: add implicit conversion to ParseResult
To simplify the error handling, this commit adds an implicit conversion
of GenericDocument to ParseResult, allowing code like (already in the
documentation):

   ParseResult ok = doc.Parse(json);
   if (!ok) // ...
2015-11-26 22:30:59 +01:00
Michael Haubenwallner
07672da098 fix Document::Parse(const Ch*) for transcoding
To allow for an UTF16-Document to Parse(UTF8),
the Parse() argument has to be UTF8-compatible.
2015-11-25 19:45:47 +01:00
Milo Yip
aeb5f5671d Merge pull request #442 from FrankHB/patch-1
Fixed typo
2015-10-26 12:23:57 +08:00
etiennebatise
edd077f4bf Add missing return statement, fix #448 2015-10-15 10:29:56 +02:00
etiennebatise
74a021346d Add break at default switch case statements
fix issue #444
2015-10-14 15:46:26 +02:00
Andrey
f7960ac0e8 Comments parsing fixes.
* Comments parsing function correctly handles EOF.
* Since SkipWhitespaceAndComments can generate errors, its calls should be followed by RAPIDJSON_PARSE_ERROR_EARLY_RETURN macro.
* Some tests to make the bug never appear again.
2015-10-14 00:04:29 +03:00
Andrey
5ce78b135d Introduce support of comments. 2015-10-11 15:09:58 +03:00
FrankHB
1640ce613c Fixed typo
<algorith> should be <algorithm>.
2015-10-10 11:33:48 +08:00
Philipp A. Hartmann
fa123699d3 Keep Document value unchanged on parse error, fixes #437
Keeping the DOM unchanged in case of an error is the intended
behaviour according to the [documentation] [1].

Instead of forcing the value to `kNullType` before starting the
parsing, store the parsed value upon success via regular move.

[1]: https://miloyip.github.io/rapidjson/md_doc_dom.html#ParseError
2015-10-07 21:48:39 +02:00
Rodion Malinovsky
2e11498943 Fix the usage of the stack::GetAllocator 2015-09-16 14:54:38 +03:00
Rodion Malinovsky
c7433dfc5e Add stack::HasAllocator
To check is it possible to expose allocator.
2015-09-16 14:53:51 +03:00
Rodion Malinovsky
8604ba0f1c Add asserts to prevent UB 2015-09-16 14:53:12 +03:00
Kurt Johnson
2a267ff15a check return of fwrite to avoid warn_unused_result build failures 2015-09-02 09:29:15 -05:00
Milo Yip
311b48224f Try to fix incorrect 64-bit alignment
Added unit tests for alignment macros.
Fixes #418
2015-09-01 10:05:33 +08:00
Philipp A. Hartmann
afbc0406f0 BigInteger: guard against self-assignment
Related-to: #404.
Suggested-by: @cosinekitty
2015-08-13 23:07:30 +02:00
blackball
c0854473e9 Implement = operator for BigInteger
There's a copy constructor, but no '=' operator implemented. This is dangerous.
2015-08-07 10:04:45 +02:00
blackball
fc50f103a6 Fix the error when compiled using vs2013
The error message for the original codes is: unary minus operator applied to unsigned type, result still unsigned. Added static casting to eliminate this message.
2015-07-24 16:19:08 +02:00
Milo Yip
1eaf180cda Merge pull request #394 from nightmouse/master
Warning cleanup on osx10.10/clang, enable -Werror
2015-07-22 09:19:51 +08:00
scheiber
d26d50092d fixing sign conversion warnings and loss of precision warnings 2015-07-21 15:15:42 -06:00
Philipp A. Hartmann
fec9e8a4f2 prohibit C++11 move from Document to Value
As reported in #387, silently moving a `GenericDocument` to a
`GenericValue` can lead to object slicing and premature deletion of
the owning allocator of the (surviving) `GenericValue`.

To reduce this risk, prohibit move construction of a `GenericValue`
from a `GenericDocument`.
2015-07-17 08:24:43 +02:00
Milo Yip
823b731896 Merge pull request #376 from pah/feature/document-swap
add GenericDocument<>::Swap with std::swap() support
2015-07-13 21:14:02 +08:00
Philipp A. Hartmann
c2b5864927 add documentation for 'swap' friend functions 2015-07-13 14:38:24 +02:00
Philipp A. Hartmann
46e1696316 add free inline swap functions 2015-07-13 09:35:15 +02:00
Philipp A. Hartmann
0ebe16e169 add and use simplified "internal::Swap"
This avoids the dependency on the <algorithm> header, as suggested by
@miloyip in #376.
2015-07-10 17:06:52 +02:00
yuzhaol
7567752710 Declare intrinsic function to avoid LNK2019 in x64 debug mode
Add #pragma intrinsic(_umul128) for MSVS 2005
2015-07-09 22:42:24 +01:00
yuzhaol
8e61b72678 Declare intrinsic function to avoid LNK2019 in x64 debug mode
Add #pragma intrinsic(_umul128) for MSVS 2005
2015-07-09 22:39:38 +01:00
Philipp A. Hartmann
dd901f498b add GenericDocument<>::Swap
See #368.
2015-07-04 01:57:24 +02:00
Mateusz Łoskot
8197805208 Add explicit specifier to GenericDocument ctor.
@pah recommended to mark this constructor as explicit to avoid accidentally creating a temporary GenericDocument from a Type enum value (because all arguments but the first one are optional).
2015-07-01 22:36:26 +02:00
Mateusz Loskot
a0177ca210 Add documentation for new GenericDocument ctor taking object type.
Update also documentation of the existing GenericDocument constructor.
2015-06-30 10:28:07 +02:00
Mateusz Loskot
413144a8b2 Add GenericDocument ctor overload to specify JSON type.
It unifies the interfaces with Value where kXXXType can be passed
into constructor.
It enables shortcut that helps to avoid extra SetXXX() call following
construction of a document.
2015-06-26 16:00:49 +02:00