mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-17 01:26:45 +00:00
JSON parser wasn't handling ulong values correctly.
It passed all scalar ints thru a int64_t, which would truncate uint64_t values with the upper bit set. Change-Id: I38fb8c68c911ae44d9863f8e35c2429ca0ab51e5 Tested: on Linux.
This commit is contained in:
@@ -95,7 +95,8 @@ inline std::string IntToStringHex(int i, int xdigits) {
|
||||
}
|
||||
|
||||
// Portable implementation of strtoll().
|
||||
inline int64_t StringToInt(const char *str, char **endptr = nullptr, int base = 10) {
|
||||
inline int64_t StringToInt(const char *str, char **endptr = nullptr,
|
||||
int base = 10) {
|
||||
#ifdef _MSC_VER
|
||||
return _strtoi64(str, endptr, base);
|
||||
#else
|
||||
@@ -104,7 +105,8 @@ inline int64_t StringToInt(const char *str, char **endptr = nullptr, int base =
|
||||
}
|
||||
|
||||
// Portable implementation of strtoull().
|
||||
inline int64_t StringToUInt(const char *str, char **endptr = nullptr, int base = 10) {
|
||||
inline uint64_t StringToUInt(const char *str, char **endptr = nullptr,
|
||||
int base = 10) {
|
||||
#ifdef _MSC_VER
|
||||
return _strtoui64(str, endptr, base);
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user