diff --git a/jsonpull.c b/jsonpull.c index 845ff2a4..c70285c6 100644 --- a/jsonpull.c +++ b/jsonpull.c @@ -11,9 +11,10 @@ typedef enum json_expect { static json_pull *json_init() { json_pull *j = malloc(sizeof(json_pull)); - j->container = NULL; j->error = NULL; j->line = 1; + j->root = NULL; + j->container = NULL; return j; } @@ -126,6 +127,8 @@ static json_object *add_object(json_pull *j, json_type type) { return NULL; } } + } else { + j->root = o; } return o; diff --git a/jsonpull.h b/jsonpull.h index b4f315c6..6a19f90f 100644 --- a/jsonpull.h +++ b/jsonpull.h @@ -18,13 +18,15 @@ typedef struct json_object { } json_object; struct json_pull { - json_object *container; + json_object *root; char *error; int (*read)(struct json_pull *); int (*peek)(struct json_pull *); void *source; int line; + + json_object *container; }; typedef struct json_pull json_pull;