2449 Commits

Author SHA1 Message Date
Jihadist
a95e013b97 Stringify NaN, Inf as null if needs 2023-07-17 11:02:35 +08:00
Leonard Chan
973dc9c06d Avoid ptrdiff between pointers to different allocations
When using running both Undefined Behavior Sanitizer (UBSan) and
Hardware-Assisted Address Sanitizer (HWASan) on Fuchsia, ubsan
complained about a pointer overflow when computing the new token->name pointer.
This happens because the initial pointer diff takes the offset between
two allocations with different tags, so the arithmetic results in a very
large diff that gets added to the original token->name ptr which
overflows.

Any arithmetic between pointers to two allocations is unspecified
behavior, so hwasan+ubsan is catching a bug here. It looks like
rapidjson is just attempting to update the name pointers to strings
copied into the new nameBuffer_ via this arithmetic, but since these
strings and the tokens are in the same buffer, the offset between them
should be the same. For each token we can just get this offset and
adjust the new name pointers accordingly which avoids the bad arithmetic.
2023-05-17 16:16:27 +08:00
Albert Hung
2a1f586ba6 Check for __GNUC__ definition
Wrap code checking against __GNUC__ to ensure it is defined. This can cause errors with compilers which do not define this preprocessor value.
2023-05-10 12:41:04 +08:00
Albert Hung
0e88d5e404 Eliminate missing prototypes warning 2023-05-09 21:28:14 +08:00
Flaviu_
949c771b03 Resolve conflict with Windows header about max macro 2023-04-07 18:45:27 +08:00
Sergey Fedorov
083f359f5c CMakeLists: fix optflags for ppc 2023-03-06 14:36:52 +08:00
supperpiccle
012be85287 Use passed in allocator. 2023-01-12 14:24:04 +08:00
Steve Hanson
1ce516e50b Suppress uritest 2023-01-05 20:34:07 +08:00
Steve Hanson
778dc8b03e fix #1 2023-01-05 20:34:07 +08:00
Tana0910
76281ff388 fix a typo in error.h: literial -> literal 2023-01-04 17:45:39 +08:00
Kent Ross
a98e99992b do not define operator!= in C++20
A change to the semantics of equality operator rewriting in C++20 (P2468R2: The Equality Operator You Are Looking For) means that operator== may not be rewritten with reversed operands if operator!= is also defined. Since operator!= can normally be synthesized from operator== regardless in this language standard, we can and should avoid defining those when the new language semantics are available.

This fixes the compilation of tests (and probably consuming code) in C++20 onwards for compilers that implement this new semantic, including recent nightly builds of clang-16.

Reference: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2468r2.html
2022-12-19 05:30:49 +08:00
Steve Hanson
b08672d469 review comment updates 2022-12-19 05:30:00 +08:00
Steve Hanson
55eca66f39 code & tests for openapi 2.0 & 3.0 suppprt 2022-12-19 05:30:00 +08:00
Steve Hanson
80b6d1c834 small corrections for schema.h 2022-12-01 00:42:44 +08:00
Steve Hanson
97fd830175 attempt to fix SEH 2022-12-01 00:42:44 +08:00
Steve Hanson
7cad78e236 tidy up after merge from master 2022-12-01 00:42:44 +08:00
Steve Hanson
794248ee62 fix build break 2022-12-01 00:42:44 +08:00
Steve Hanson
2d87923e91 remove unnecessary templating from schema tests 2022-12-01 00:42:44 +08:00
Steve Hanson
aa1f22251f correct address.json so tests pass 2022-12-01 00:42:44 +08:00
Steve Hanson
ecb8d9e3a0 add dump of unexpected schema errors in schematest.cpp 2022-12-01 00:42:44 +08:00
Steve Hanson
89f6717f0b corrections 2022-12-01 00:42:44 +08:00
Steve Hanson
338d8defdb initial 2022-12-01 00:42:44 +08:00
jwillcox-telework
06d58b9e84 Update dtoa.h
Fixed DigitGen to use proper suffix for uint64_t numeric types. Change from U suffix to ULL suffix.

On SLED 11.0 compiler, code would not compile.

cd rapidjson-master
g++ -Wall -m32 -ggdb -Iinclude -O1 ./example/simpledom/simpledom.cpp -o simpledom 2>&1 | tee out.txt
2022-08-23 10:52:40 +08:00
jwillcox-telework
22a62fcc2c Update allocators.h
Fixing compiler error on older compilers, such as SLED 11.0.

cd rapidjson-master
g++ -Wall -m32 -ggdb -Iinclude -O1 ./example/simpledom/simpledom.cpp -o simpledom 2>&1 | tee out.txt

Changed SIZE_MAX to std::numeric_limits<size_t>::max() in code to get rid of SIZE_MAX error.
2022-08-23 10:52:40 +08:00
Tim Gates
27c3a8dc0e docs: fix simple typo, perecent -> percent
There is a small typo in test/unittest/pointertest.cpp.

Should read `percent` rather than `perecent`.

Signed-off-by: Tim Gates <tim.gates@iress.com>
2022-07-20 21:53:57 +08:00
Kent Ross
232389d4f1 delete unused variable 2022-05-24 10:03:13 +08:00
Kent Ross
64faab2e92 gate definition of symmetric equality operators on impl, not lib
These operators call themselves recursively if C++20 semantics are present in the compiler, regardless of standard library support for the operator; therefore the test should be on __cpp_impl_three_way_comparison, not __cpp_lib_[...].

This fixes the Value.EqualtoOperator test when the language standard is set to C++20 and the standard library does not yet define the library support macro.
2022-05-24 10:03:13 +08:00
Johnny Shaw
719304b113 fixes for natvis 2022-05-21 15:02:39 +08:00
Johnny Shaw
dd3f730d74 Make schema dtor robust against exceptions 2022-05-21 09:35:41 +08:00
Peter Kasting
781a4e667d Try to fix MSVC build. 2022-05-19 11:55:17 +08:00
Peter Kasting
88f8ddd70c Include conceptual change from PR 2001. 2022-05-19 11:55:17 +08:00
Peter Kasting
4695953567 Avoid exit-time destructors.
operator[]() was recently changed to use the existing code in order to
correctly align the returned pointer; however this broke
-Wexit-time-destructors.  Change to a method that is still correctly
aligned but does not generate a destructor.
2022-05-19 11:55:17 +08:00
Peter Kasting
0390b1ad57 Avoid exit-time destructors.
operator[]() was recently changed to use the existing code in order to
correctly align the returned pointer; however this broke
-Wexit-time-destructors.  Change to a method that is still correctly
aligned but does not generate a destructor.
2022-05-19 11:55:17 +08:00
Tom Briden
2b2c804500 encdedstreamtest: fix use-after-free compile error with gcc-12 2022-05-16 10:23:11 +08:00
Tom Briden
1f59c69cd1 valuetest: fix potential write of terminating nul past the end of the destination
Fixes 2 compile errors with gcc-12, eg:

tesunittest/valuetest.cpp:1516:30: error: 'sprintf' may write a terminating nul past the end of the destination [-Werror=format-overflow=]
test/unittest/valuetest.cpp:1516:20: note: 'sprintf' output between 2 and 11 bytes into a destination of size 10
2022-05-16 10:23:11 +08:00
Milo Yip
fcb23c2dbf
Merge pull request #2008 from agate-pris/access-to-allocator-types
Access to allocator types
2022-04-06 12:28:13 +08:00
Milo Yip
bdc49ad80a
Merge pull request #2014 from lazydroid/dev/lenik/fix_shadowed_variables
fix shadowed variable
2022-04-06 12:27:10 +08:00
Leonid Terenin
6b500986c4 fix shadowed variable, take 2 2022-04-06 10:42:40 +09:00
Leonid Terenin
3988c5e25e fix shadowed variable 2022-04-06 09:58:56 +09:00
agate-pris
386d31ab69 Allow access to the template parameter StackAllocator in the GenericDocument
Add the typedef declaration `StackAllocatorType` to the class template
`GenericDocument`. This allows the user to access the template parameter
`StackAllocator`.
2022-03-18 19:34:11 +09:00
agate-pris
79d7a448e9 Allow the macro RAPIDJSON_DEFAULT_STACK_ALLOCATOR to be used in any namespace
RAPIDJSON_DEFAULT_STACK_ALLOCATOR uses names in the namespace
`RAPIDJSON_NAMESPACE`. Replace this with a name starting in the global
namespace.
2022-03-18 19:32:01 +09:00
agate-pris
9965ab37f6 Allow the macro RAPIDJSON_DEFAULT_ALLOCATOR to be used in any namespace
`RAPIDJSON_DEFAULT_ALLOCATOR` uses names in the namespace
`RAPIDJSON_NAMESPACE`. Replace this with a name starting in the global
namespace.
2022-03-18 19:22:19 +09:00
Milo Yip
8261c1ddf4
Merge pull request #1969 from MalcolmTyrrell/MalcolmTyrrell/sanitizeSchemaCode
Sanitize the code in schema.h
2022-03-09 12:15:45 +08:00
Milo Yip
0d78b1ce93
Merge pull request #1989 from adamcalhoon/really-fix-placement-new-alignment
Fix the alignment of placement new buffer for GenericValue.
2022-03-08 17:09:47 +08:00
Adam Calhoon
1dff2abff7 Fix the alignment of placement new buffer for GenericValue.
When using operator[] on a GenericValue type clang-tidy complains,
appropriately, about the alignment of the buffer used for placement-new
of the "dummy" GenericValue.
2022-02-08 22:29:15 -05:00
Milo Yip
e4bde97744
Merge pull request #1988 from Tencent/revert-1987-fix-placement-new-alignment
Revert "Fix the alignment of placement new buffer for GenericValue."
2022-02-09 10:48:22 +08:00
Milo Yip
88bbd87ddd
Revert "Fix the alignment of placement new buffer for GenericValue." 2022-02-09 10:48:05 +08:00
Milo Yip
bf8ca5da88
Merge pull request #1987 from adamcalhoon/fix-placement-new-alignment
Fix the alignment of placement new buffer for GenericValue.
2022-02-09 10:47:25 +08:00
Adam Calhoon
5b242b6b2d Fix the alignment of placement new buffer for GenericValue.
When using operator[] on a GenericValue type clang-tidy complains,
appropriately, about the alignment of the buffer used for placement-new
of the "dummy" GenericValue.
2022-02-08 12:03:02 -05:00
Milo Yip
fd3dc29a5c
Merge pull request #1944 from ilelann/patch-1
Support CMake none targets
2021-11-24 23:11:45 +08:00