Skip to content

Commit f76ee5e

Browse files
lemireioioioio
authored andcommitted
Fixes issue 221 (simdjson#222)
simdjson#221
1 parent eba02dc commit f76ee5e

File tree

5 files changed

+9
-5
lines changed

5 files changed

+9
-5
lines changed

jsonchecker/fail70.json

Whitespace-only changes.

jsonchecker/pass19.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
-1

src/parsedjson.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,11 @@ ParsedJson::ParsedJson(ParsedJson && p)
3535

3636
WARN_UNUSED
3737
bool ParsedJson::allocateCapacity(size_t len, size_t maxdepth) {
38-
if ((maxdepth == 0) || (len == 0)) {
39-
std::cerr << "capacities must be non-zero " << std::endl;
40-
return false;
38+
if (maxdepth <= 0) {
39+
maxdepth = 1; // don't let the user allocate nothing
40+
}
41+
if (len <= 0) {
42+
len = 64; // allocating 0 bytes is wasteful.
4143
}
4244
if(len > SIMDJSON_MAXSIZE_BYTES) {
4345
return false;

tools/json2json.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ int main(int argc, char *argv[]) {
8686
return EXIT_FAILURE;
8787
}
8888
int res = simdjson::json_parse(p, pj); // do the parsing, return false on error
89-
if (res) {
90-
std::cerr << " Parsing failed. " << std::endl;
89+
if (res != simdjson::SUCCESS) {
90+
std::cerr << " Parsing failed. Error is '" << simdjson::errorMsg(res) << "'." << std::endl;
9191
return EXIT_FAILURE;
9292
}
9393
if (apidump) {

tools/jsonstats.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ stat_t simdjson_computestats(const simdjson::padded_string &p) {
4646
simdjson::ParsedJson pj = simdjson::build_parsed_json(p);
4747
answer.valid = pj.isValid();
4848
if (!answer.valid) {
49+
std::cerr << pj.getErrorMsg() << std::endl;
4950
return answer;
5051
}
5152
answer.backslash_count = count_backslash(reinterpret_cast<const uint8_t*>(p.data()), p.size());

0 commit comments

Comments
 (0)