mirror of
https://github.com/simdjson/simdjson
synced 2026-06-08 17:27:07 +00:00
Fix C4146 build error on UWP with MSVC (#113)
* Fix C4146 build error on UWP with MSVC * Regenerate single header version * Fix typo in parsedjson.h * Regenerate single header version
This commit is contained in:
@@ -331,7 +331,7 @@ static never_inline bool parse_large_integer(const uint8_t *const buf,
|
||||
return false; // overflow
|
||||
}
|
||||
}
|
||||
int64_t signed_answer = negative ? -i : i;
|
||||
int64_t signed_answer = negative ? -static_cast<int64_t>(i) : static_cast<int64_t>(i);
|
||||
pj.write_tape_s64(signed_answer);
|
||||
#ifdef JSON_TEST_NUMBERS // for unit testing
|
||||
foundInteger(signed_answer, buf + offset);
|
||||
|
||||
@@ -30,7 +30,7 @@ public:
|
||||
ParsedJson(ParsedJson && p);
|
||||
|
||||
// if needed, allocate memory so that the object is able to process JSON
|
||||
// documents having up to len butes and maxdepth "depth"
|
||||
// documents having up to len bytes and maxdepth "depth"
|
||||
WARN_UNUSED
|
||||
bool allocateCapacity(size_t len, size_t maxdepth = DEFAULTMAXDEPTH);
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* auto-generated on Wed 6 Mar 11:05:32 AEDT 2019. Do not edit! */
|
||||
/* auto-generated on Fri Mar 8 19:04:53 PST 2019. Do not edit! */
|
||||
|
||||
#include <iostream>
|
||||
#include "simdjson.h"
|
||||
|
||||
+19
-20
@@ -1,4 +1,4 @@
|
||||
/* auto-generated on Wed 6 Mar 11:05:32 AEDT 2019. Do not edit! */
|
||||
/* auto-generated on Fri Mar 8 19:04:53 PST 2019. Do not edit! */
|
||||
#include "simdjson.h"
|
||||
|
||||
/* used for http://dmalloc.com/ Dmalloc - Debug Malloc Library */
|
||||
@@ -1626,31 +1626,30 @@ uint8_t ParsedJson::iterator::get_scope_type() const {
|
||||
}
|
||||
|
||||
bool ParsedJson::iterator::move_forward() {
|
||||
if(location + 1 >= tape_length) {
|
||||
return false; // we are at the end!
|
||||
}
|
||||
// we are entering a new scope
|
||||
if ((current_type == '[') || (current_type == '{')){
|
||||
depth++;
|
||||
depthindex[depth].start_of_scope = location;
|
||||
depthindex[depth].scope_type = current_type;
|
||||
}
|
||||
location = location + 1;
|
||||
current_val = pj.tape[location];
|
||||
current_type = (current_val >> 56);
|
||||
// if we encounter a scope closure, we need to move up
|
||||
while ((current_type == ']') || (current_type == '}')) {
|
||||
if(location + 1 >= tape_length) {
|
||||
return false; // we are at the end!
|
||||
}
|
||||
depth--;
|
||||
if(depth == 0) {
|
||||
return false; // should not be necessary
|
||||
|
||||
if ((current_type == '[') || (current_type == '{')){
|
||||
// We are entering a new scope
|
||||
depth++;
|
||||
depthindex[depth].start_of_scope = location;
|
||||
depthindex[depth].scope_type = current_type;
|
||||
} else if ((current_type == ']') || (current_type == '}')) {
|
||||
// Leaving a scope.
|
||||
depth--;
|
||||
if(depth == 0) {
|
||||
// Should not be necessary
|
||||
return false;
|
||||
}
|
||||
} else if ((current_type == 'd') || (current_type == 'l')) {
|
||||
// d and l types use 2 locations on the tape, not just one.
|
||||
location += 1;
|
||||
}
|
||||
location = location + 1;
|
||||
|
||||
location += 1;
|
||||
current_val = pj.tape[location];
|
||||
current_type = (current_val >> 56);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* auto-generated on Wed 6 Mar 11:05:32 AEDT 2019. Do not edit! */
|
||||
/* auto-generated on Fri Mar 8 19:04:53 PST 2019. Do not edit! */
|
||||
/* begin file include/simdjson/simdjson_version.h */
|
||||
// /include/simdjson/simdjson_version.h automatically generated by release.py, do not change by hand
|
||||
#ifndef SIMDJSON_INCLUDE_SIMDJSON_VERSION
|
||||
@@ -36571,7 +36571,7 @@ static never_inline bool parse_large_integer(const uint8_t *const buf,
|
||||
return false; // overflow
|
||||
}
|
||||
}
|
||||
int64_t signed_answer = negative ? -i : i;
|
||||
int64_t signed_answer = negative ? -static_cast<int64_t>(i) : static_cast<int64_t>(i);
|
||||
pj.write_tape_s64(signed_answer);
|
||||
#ifdef JSON_TEST_NUMBERS // for unit testing
|
||||
foundInteger(signed_answer, buf + offset);
|
||||
|
||||
Reference in New Issue
Block a user