diff options
author | Bo Yang <teboring@google.com> | 2017-09-19 14:23:36 -0700 |
---|---|---|
committer | Bo Yang <teboring@google.com> | 2017-09-19 14:23:36 -0700 |
commit | 0b7904e18cad70e17a2dbed5f1362ccdc62fd385 (patch) | |
tree | e94665631c7437d1bebb62b9a45f0c1be1f21d81 /upb/handlers.c | |
parent | ae30b4a816a57a8101ce187245edc3050d515c06 (diff) |
Reserve unknown fields in upb
1. For decoding, an unknownfields will be lazily created on message,
which contains bytes of unknown fields.
2. For encoding, if the unknownfields is present on message, all bytes
contained in it will be serialized.
Diffstat (limited to 'upb/handlers.c')
-rw-r--r-- | upb/handlers.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/upb/handlers.c b/upb/handlers.c index 09f9199..b9dc8f3 100644 --- a/upb/handlers.c +++ b/upb/handlers.c @@ -372,6 +372,19 @@ SETTER(endseq, upb_endfield_handlerfunc*, UPB_HANDLER_ENDSEQ) #undef SETTER +bool upb_handlers_setaddunknown(upb_handlers *h, + upb_addunknown_handlerfunc *func, + upb_handlerattr *attr) { + return doset(h, UPB_UNKNOWN_SELECTOR, NULL, UPB_HANDLER_INT32, + (upb_func *)func, attr); +} + +bool upb_handlers_setunknown(upb_handlers *h, upb_unknown_handlerfunc *func, + upb_handlerattr *attr) { + return doset(h, UPB_UNKNOWN_SELECTOR, NULL, UPB_HANDLER_INT32, + (upb_func *)func, attr); +} + bool upb_handlers_setstartmsg(upb_handlers *h, upb_startmsg_handlerfunc *func, upb_handlerattr *attr) { return doset(h, UPB_STARTMSG_SELECTOR, NULL, UPB_HANDLER_INT32, |