summaryrefslogtreecommitdiff
path: root/jsmn.c
diff options
context:
space:
mode:
authorSerge A. Zaitsev <devnull@localhost>2012-02-02 13:15:22 +0200
committerSerge A. Zaitsev <devnull@localhost>2012-02-02 13:15:22 +0200
commita983a7606136a3dfd538a9940c5ebf48d200251c (patch)
tree5ffb99cd0e84254a69600343c1cf502efcf30ac0 /jsmn.c
parent53454e542929d07b6fea438fd112eed2f7d865b4 (diff)
added reading with small number of tokens test, fixed NOMEM issue #2
Diffstat (limited to 'jsmn.c')
-rw-r--r--jsmn.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/jsmn.c b/jsmn.c
index cca3bbcbf..ef53cc0d2 100644
--- a/jsmn.c
+++ b/jsmn.c
@@ -60,8 +60,10 @@ static int jsmn_parse_primitive(jsmn_parser *parser, const char *js,
found:
token = jsmn_alloc_token(parser, tokens, num_tokens);
- if (token == NULL)
+ if (token == NULL) {
+ parser->pos = start;
return JSMN_ERROR_NOMEM;
+ }
jsmn_fill_token(token, JSMN_PRIMITIVE, start, parser->pos);
parser->pos--;
return JSMN_SUCCESS;
@@ -85,8 +87,10 @@ static int jsmn_parse_string(jsmn_parser *parser, const char *js,
/* Quote: end of string */
if (c == '\"') {
token = jsmn_alloc_token(parser, tokens, num_tokens);
- if (token == NULL)
+ if (token == NULL) {
+ parser->pos = start;
return JSMN_ERROR_NOMEM;
+ }
jsmn_fill_token(token, JSMN_STRING, start+1, parser->pos);
return JSMN_SUCCESS;
}