diff options
author | Joshua Haberman <joshua@reverberate.org> | 2009-02-26 17:41:43 -0800 |
---|---|---|
committer | Joshua Haberman <joshua@reverberate.org> | 2009-02-26 17:41:43 -0800 |
commit | e195d5379deb5699ea7cb76e4b3077a2cffa40da (patch) | |
tree | f8cd081aa4943d3bef63969dda6628866963fdc5 /pbstream.h | |
parent | eaa0cdd6a162139406b24114aa6c5f27da3b1af0 (diff) |
Since the stack has a fixed size, don't allocate dynamically.
Diffstat (limited to 'pbstream.h')
-rw-r--r-- | pbstream.h | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -7,6 +7,9 @@ #include <stdint.h> #include <stdbool.h> +/* The maximum that any submessages can be nested. Matches proto2's limit. */ +#define PBSTREAM_MAX_STACK 64 + /* A list of types as they can appear in a .proto file. */ typedef enum pbstream_type { PBSTREAM_TYPE_DOUBLE = 0, @@ -101,7 +104,8 @@ struct pbstream_parse_stack_frame { /* The stream parser's state. */ struct pbstream_parse_state { size_t offset; - struct pbstream_parse_stack_frame *base, *top, *limit; + struct pbstream_parse_stack_frame stack[PBSTREAM_MAX_STACK]; + struct pbstream_parse_stack_frame *top, *limit; }; /* Call this once before parsing to initialize the data structures. @@ -111,8 +115,6 @@ void pbstream_init_parser( struct pbstream_parse_state *state, struct pbstream_fieldset *toplevel_fieldset); -void pbstream_free_parser(struct pbstream_parse_state *state); - /* Status as returned by pbstream_parse(). Status codes <0 are fatal errors * that cannot be recovered. Status codes >0 are unusual but nonfatal events, * which nonetheless must be handled differently since they do not return data |