Skip to content

Commit ca9b916

Browse files
authored
Update RapidJSON (#118432)
1 parent 66519b1 commit ca9b916

File tree

6 files changed

+13
-12
lines changed

6 files changed

+13
-12
lines changed
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
3f73edae00aba5b0112a80b4d41e6f1ff7d92a3d
1+
24b5e7a8b27f42fa16b96fc70aade9106cf7102f
22

3-
https://github.com/Tencent/rapidjson/commit/3f73edae00aba5b0112a80b4d41e6f1ff7d92a3d
3+
https://github.com/Tencent/rapidjson/commit/24b5e7a8b27f42fa16b96fc70aade9106cf7102f
44

55
Note: This library is not using a proper release lifecycle. v1.1.0 was the last version released in 2016.
6-
Therefore, we are pointing to a random commit from 2024 rather than a version tag.
6+
Therefore, we are pointing to a random commit from 2025 rather than a version tag.

src/native/external/rapidjson/document.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1033,7 +1033,7 @@ class GenericValue {
10331033
return false;
10341034
for (ConstMemberIterator lhsMemberItr = MemberBegin(); lhsMemberItr != MemberEnd(); ++lhsMemberItr) {
10351035
typename RhsType::ConstMemberIterator rhsMemberItr = rhs.FindMember(lhsMemberItr->name);
1036-
if (rhsMemberItr == rhs.MemberEnd() || lhsMemberItr->value != rhsMemberItr->value)
1036+
if (rhsMemberItr == rhs.MemberEnd() || (!(lhsMemberItr->value == rhsMemberItr->value)))
10371037
return false;
10381038
}
10391039
return true;
@@ -1042,7 +1042,7 @@ class GenericValue {
10421042
if (data_.a.size != rhs.data_.a.size)
10431043
return false;
10441044
for (SizeType i = 0; i < data_.a.size; i++)
1045-
if ((*this)[i] != rhs[i])
1045+
if (!((*this)[i] == rhs[i]))
10461046
return false;
10471047
return true;
10481048

@@ -2445,13 +2445,14 @@ class GenericValue {
24452445
data_.f.flags = kShortStringFlag;
24462446
data_.ss.SetLength(s.length);
24472447
str = data_.ss.str;
2448+
std::memmove(str, s, s.length * sizeof(Ch));
24482449
} else {
24492450
data_.f.flags = kCopyStringFlag;
24502451
data_.s.length = s.length;
24512452
str = static_cast<Ch *>(allocator.Malloc((s.length + 1) * sizeof(Ch)));
24522453
SetStringPointer(str);
2454+
std::memcpy(str, s, s.length * sizeof(Ch));
24532455
}
2454-
std::memcpy(str, s, s.length * sizeof(Ch));
24552456
str[s.length] = '\0';
24562457
}
24572458

src/native/external/rapidjson/encodings.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,10 @@ struct UTF8 {
177177

178178
template <typename InputStream, typename OutputStream>
179179
static bool Validate(InputStream& is, OutputStream& os) {
180-
#define RAPIDJSON_COPY() os.Put(c = is.Take())
180+
#define RAPIDJSON_COPY() if (c != '\0') os.Put(c = is.Take())
181181
#define RAPIDJSON_TRANS(mask) result &= ((GetRange(static_cast<unsigned char>(c)) & mask) != 0)
182182
#define RAPIDJSON_TAIL() RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x70)
183-
Ch c;
183+
Ch c = static_cast<Ch>(-1);
184184
RAPIDJSON_COPY();
185185
if (!(c & 0x80))
186186
return true;

src/native/external/rapidjson/internal/strtod.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ inline bool StrtodDiyFp(const Ch* decimals, int dLen, int dExp, double* result)
134134
int i = 0; // 2^64 - 1 = 18446744073709551615, 1844674407370955161 = 0x1999999999999999
135135
for (; i < dLen; i++) {
136136
if (significand > RAPIDJSON_UINT64_C2(0x19999999, 0x99999999) ||
137-
(significand == RAPIDJSON_UINT64_C2(0x19999999, 0x99999999) && decimals[i] > Ch('5')))
137+
(significand == RAPIDJSON_UINT64_C2(0x19999999, 0x99999999) && decimals[i] >= Ch('5')))
138138
break;
139139
significand = significand * 10u + static_cast<unsigned>(decimals[i] - Ch('0'));
140140
}

src/native/external/rapidjson/rapidjson.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@
268268
# elif defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN)
269269
# define RAPIDJSON_ENDIAN RAPIDJSON_BIGENDIAN
270270
// Detect with architecture macros
271-
# elif defined(__sparc) || defined(__sparc__) || defined(_POWER) || defined(__powerpc__) || defined(__ppc__) || defined(__hpux) || defined(__hppa) || defined(_MIPSEB) || defined(_POWER) || defined(__s390__)
271+
# elif defined(__sparc) || defined(__sparc__) || defined(_POWER) || defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || defined(__hpux) || defined(__hppa) || defined(_MIPSEB) || defined(_POWER) || defined(__s390__)
272272
# define RAPIDJSON_ENDIAN RAPIDJSON_BIGENDIAN
273273
# elif defined(__i386__) || defined(__alpha__) || defined(__ia64) || defined(__ia64__) || defined(_M_IX86) || defined(_M_IA64) || defined(_M_ALPHA) || defined(__amd64) || defined(__amd64__) || defined(_M_AMD64) || defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || defined(__bfin__)
274274
# define RAPIDJSON_ENDIAN RAPIDJSON_LITTLEENDIAN

src/native/external/rapidjson/reader.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1584,7 +1584,7 @@ class GenericReader {
15841584
// Parse frac = decimal-point 1*DIGIT
15851585
int expFrac = 0;
15861586
size_t decimalPosition;
1587-
if (Consume(s, '.')) {
1587+
if (!useNanOrInf && Consume(s, '.')) {
15881588
decimalPosition = s.Length();
15891589

15901590
if (RAPIDJSON_UNLIKELY(!(s.Peek() >= '0' && s.Peek() <= '9')))
@@ -1631,7 +1631,7 @@ class GenericReader {
16311631

16321632
// Parse exp = e [ minus / plus ] 1*DIGIT
16331633
int exp = 0;
1634-
if (Consume(s, 'e') || Consume(s, 'E')) {
1634+
if (!useNanOrInf && (Consume(s, 'e') || Consume(s, 'E'))) {
16351635
if (!useDouble) {
16361636
d = static_cast<double>(use64bit ? i64 : i);
16371637
useDouble = true;

0 commit comments

Comments
 (0)