summaryrefslogtreecommitdiff
path: root/core/upb_msg.c
diff options
context:
space:
mode:
authorJoshua Haberman <joshua@reverberate.org>2011-01-10 20:37:04 -0800
committerJoshua Haberman <joshua@reverberate.org>2011-01-10 20:37:04 -0800
commitbcc688a303439c758a47da9f0eb1c064ece6ce09 (patch)
tree4a6cfe35a040bffcb48a18ceac90506752244af6 /core/upb_msg.c
parent45599180905d45a882970f6ca8b6007436ac3f97 (diff)
upb_def compiles again!
Diffstat (limited to 'core/upb_msg.c')
-rw-r--r--core/upb_msg.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/core/upb_msg.c b/core/upb_msg.c
index 75f7a35..a0a5196 100644
--- a/core/upb_msg.c
+++ b/core/upb_msg.c
@@ -7,6 +7,8 @@
*/
#include "upb_msg.h"
+#include "upb_decoder.h"
+#include "upb_strstream.h"
void _upb_elem_free(upb_value v, upb_fielddef *f) {
switch(f->type) {
@@ -108,10 +110,13 @@ upb_value upb_field_tryrecycle(upb_valueptr p, upb_value val, upb_fielddef *f,
void upb_msg_decodestr(upb_msg *msg, upb_msgdef *md, upb_string *str,
upb_status *status) {
- (void)msg;
- (void)md;
- (void)str;
- (void)status;
+ upb_stringsrc *ssrc = upb_stringsrc_new();
+ upb_stringsrc_reset(ssrc, str);
+ upb_decoder *d = upb_decoder_new(md);
+ upb_decoder_reset(d, upb_stringsrc_bytesrc(ssrc));
+
+ upb_decoder_free(d);
+ upb_stringsrc_free(ssrc);
}
void upb_msg_encodestr(upb_msg *msg, upb_msgdef *md, upb_string *str,
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback