summaryrefslogtreecommitdiff
path: root/demo.c
diff options
context:
space:
mode:
authorSerge A. Zaitsev <devnull@localhost>2010-11-17 15:16:12 +0200
committerSerge A. Zaitsev <devnull@localhost>2010-11-17 15:16:12 +0200
commit7a027a4dd2191a112ea0cc2e48ae56b36e0f385e (patch)
tree831def152401c64b16132df57dfa7c053b5534d1 /demo.c
parent3922360800a704d81a33b20ab1c3c48f9bd837a2 (diff)
Token manipulation functions changes. size_t replaced with unsigned int.
Diffstat (limited to 'demo.c')
-rw-r--r--demo.c31
1 files changed, 17 insertions, 14 deletions
diff --git a/demo.c b/demo.c
index bcd601624..46f1bdd69 100644
--- a/demo.c
+++ b/demo.c
@@ -95,36 +95,39 @@ int main(int argc, char *argv[]) {
exit(EXIT_FAILURE);
}
+ jsmn_parser parser;
+ jsmn_init_parser(&parser, js, tokens, num_tokens);
+
while (1) {
char buf[BUFSIZ];
- r = fread(buf, 1, BUFSIZ, f);
+ r = fread(buf, 1, 1, f);
if (r <= 0) {
break;
}
- js = (char *) realloc(js, filesize + r);
+ js = (char *) realloc(js, filesize + r + 1);
if (js == NULL) {
fprintf(stderr, "Cannot allocate anough memory\n");
fclose(f);
exit(EXIT_FAILURE);
}
+ parser.js = js;
+
memcpy(js + filesize, buf, r);
filesize += r;
- }
-
- fclose(f);
+ js[filesize] = '\0';
- jsmn_parser parser;
- jsmn_init_parser(&parser, js, tokens, num_tokens);
-
- r = jsmn_parse(&parser);
- if (r < 0) {
- printf("error %d at pos %d: %s\n", r, parser.pos, &js[parser.pos]);
- }
+ r = jsmn_parse(&parser);
+ if (r < 0) {
+ printf("error %d at pos %d: %s\n", r, parser.pos, &js[parser.pos]);
+ }
- for (i = 0; i<num_tokens; i++) {
- jsmn_dump_obj(&parser.tokens[i], js);
+ for (i = 0; i<num_tokens; i++) {
+ jsmn_dump_obj(&parser.tokens[i], js);
+ }
}
+ fclose(f);
+ free(tokens);
free(js);
return 0;