Fix a bug in json_tokener_parse_ex when re-using the same tokener to parse multiple objects. Now, json_tokener_reset() does not need to be called after a valid object is parsed.
This commit is contained in:
@@ -715,7 +715,17 @@ struct json_object* json_tokener_parse_ex(struct json_tokener *tok,
|
|||||||
tok->err = json_tokener_error_parse_eof;
|
tok->err = json_tokener_error_parse_eof;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(tok->err == json_tokener_success) return json_object_get(current);
|
if (tok->err == json_tokener_success)
|
||||||
|
{
|
||||||
|
json_object *ret = json_object_get(current);
|
||||||
|
int ii;
|
||||||
|
|
||||||
|
/* Partially reset, so we parse additional objects on subsequent calls. */
|
||||||
|
for(ii = tok->depth; ii >= 0; ii--)
|
||||||
|
json_tokener_reset_level(tok, ii);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
MC_DEBUG("json_tokener_parse_ex: error %s at offset %d\n",
|
MC_DEBUG("json_tokener_parse_ex: error %s at offset %d\n",
|
||||||
json_tokener_errors[tok->err], tok->char_offset);
|
json_tokener_errors[tok->err], tok->char_offset);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|||||||
Reference in New Issue
Block a user