diff options
author | Joshua Haberman <joshua@reverberate.org> | 2009-02-24 10:36:34 -0800 |
---|---|---|
committer | Joshua Haberman <joshua@reverberate.org> | 2009-02-24 10:36:34 -0800 |
commit | ecd855279d0984b3c0191ce1e60f0b4690af2f39 (patch) | |
tree | b2e4b93bc9f3d30a55f25d35f135e4c45a7b4231 | |
parent | 7fefc5c8756fc7568371cffe66cbc0136c6eb31b (diff) |
Removed CALLBACK() macro and struct of callbacks.
-rw-r--r-- | pbstream.c | 10 | ||||
-rw-r--r-- | pbstream.h | 11 |
2 files changed, 7 insertions, 14 deletions
@@ -243,14 +243,10 @@ static pbstream_status_t parse_unknown_value( return PBSTREAM_STATUS_OK; } -#define CALLBACK(s, func, ...) do { \ - if(s->callbacks.func) s->callbacks.func(__VA_ARGS__); \ - } while (0) - #define NONFATAL_ERROR(s, code) do { \ - if(s->ignore_nonfatal_errors) CALLBACK(s, error_callback, code); \ - else return code; \ - } while (0) + if(s->ignore_nonfatal_errors) { \ + if(s->error_callback) s->error_callback(s, code); \ + } else return code; } while (0) static struct pbstream_field_descriptor *find_field_descriptor( struct pbstream_message_descriptor* md, @@ -168,11 +168,9 @@ typedef enum pbstream_status { // A field was encoded with the wrong wire type. PBSTREAM_ERROR_MISMATCHED_TYPE, } pbstream_status_t; -typedef void (*pbstream_error_callback_t)(pbstream_status_t error); - -struct pbstream_callbacks { - pbstream_error_callback_t error_callback; -}; +struct pbstream_parse_state; +typedef void (*pbstream_error_callback_t)(struct pbstream_parse_state *s, + pbstream_status_t error); struct pbstream_parse_stack_frame { struct pbstream_message_descriptor *message_descriptor; @@ -184,7 +182,7 @@ struct pbstream_parse_stack_frame { /* The stream parser's state. */ struct pbstream_parse_state { - struct pbstream_callbacks callbacks; + pbstream_error_callback_t error_callback; size_t offset; bool ignore_nonfatal_errors; void *user_data; @@ -197,7 +195,6 @@ struct pbstream_parse_state { void pbstream_init_parser( struct pbstream_parse_state *state, struct pbstream_message_descriptor *message_descriptor, - struct pbstream_callbacks *callbacks, void *user_data); /* Call this to parse as much of buf as possible, calling callbacks as |