diff options
author | Joshua Haberman <joshua@reverberate.org> | 2009-02-25 15:49:57 -0800 |
---|---|---|
committer | Joshua Haberman <joshua@reverberate.org> | 2009-02-25 15:49:57 -0800 |
commit | 1aa1627fc1ccf0e22d87d2b71ad356a1150190f2 (patch) | |
tree | de522e190f9052f540a0769a7f865d69b9d04f80 | |
parent | afe132eb10575c31e856b7339942d9259f55d315 (diff) |
Implemented the _init_parser() function.
-rw-r--r-- | pbstream.c | 15 | ||||
-rw-r--r-- | pbstream.h | 2 |
2 files changed, 16 insertions, 1 deletions
@@ -301,3 +301,18 @@ unknown_value: s->offset += (b-buf); return unknown_value_status; } + +void pbstream_init_parser( + struct pbstream_parse_state *state, + struct pbstream_message_descriptor *message_descriptor, + void *user_data) +{ + state->offset = 0; + state->user_data = user_data; + /* Initial stack of <300b most protobufs are unlikely to nest >20 deep. */ + const int initial_stack = 20; + state->top = state->base = malloc(sizeof(*state->base) * initial_stack); + state->limit = state->base + initial_stack; + state->top->message_descriptor = message_descriptor; + state->top->end_offset = SIZE_MAX; +} @@ -127,7 +127,7 @@ struct pbstream_parse_state; struct pbstream_parse_stack_frame { struct pbstream_message_descriptor *message_descriptor; - int end_offset; /* unknown for the top frame, so we set to INT_MAX */ + size_t end_offset; /* unknown for the top frame, so we set to SIZE_MAX */ }; /* The stream parser's state. */ |