diff options
author | Joshua Haberman <jhaberman@gmail.com> | 2017-09-25 18:00:12 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-25 18:00:12 -0700 |
commit | bcb62b7fbfb0c959f7d3671b40c1b7efbb3a4156 (patch) | |
tree | 85c6e64d44beb2c970728290c7f88d87c736642e /upb/pb/encoder.c | |
parent | ae30b4a816a57a8101ce187245edc3050d515c06 (diff) | |
parent | 0a9681874ee9ec1e3104b4bdb8e6b2396561ccb6 (diff) |
Merge pull request #92 from TeBoring/unknown
Add new "unknown field" handler.
Diffstat (limited to 'upb/pb/encoder.c')
-rw-r--r-- | upb/pb/encoder.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/upb/pb/encoder.c b/upb/pb/encoder.c index b457867..839ede0 100644 --- a/upb/pb/encoder.c +++ b/upb/pb/encoder.c @@ -374,6 +374,12 @@ static void *encode_startdelimfield(void *c, const void *hd) { return ok ? c : UPB_BREAK; } +static bool encode_unknown(void *c, const void *hd, const char *buf, + size_t len) { + UPB_UNUSED(hd); + return encode_bytes(c, buf, len) && commit(c); +} + static bool encode_enddelimfield(void *c, const void *hd) { UPB_UNUSED(hd); return end_delim(c); @@ -436,6 +442,7 @@ static void newhandlers_callback(const void *closure, upb_handlers *h) { upb_handlers_setstartmsg(h, startmsg, NULL); upb_handlers_setendmsg(h, endmsg, NULL); + upb_handlers_setunknown(h, encode_unknown, NULL); m = upb_handlers_msgdef(h); for(upb_msg_field_begin(&i, m); |