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 /pbstream.c | |
parent | afe132eb10575c31e856b7339942d9259f55d315 (diff) |
Implemented the _init_parser() function.
Diffstat (limited to 'pbstream.c')
-rw-r--r-- | pbstream.c | 15 |
1 files changed, 15 insertions, 0 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; +} |