summaryrefslogtreecommitdiffstats
path: root/example_unions
diff options
context:
space:
mode:
Diffstat (limited to 'example_unions')
-rw-r--r--example_unions/decode.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/example_unions/decode.c b/example_unions/decode.c
index edd568cb..a7cc7814 100644
--- a/example_unions/decode.c
+++ b/example_unions/decode.c
@@ -44,10 +44,11 @@ const pb_field_t* decode_unionmessage_type(pb_istream_t *stream)
bool decode_unionmessage_contents(pb_istream_t *stream, const pb_field_t fields[], void *dest_struct)
{
- pb_field_t field = {}; /* NB: Could get rid of this wrapper by fixing issue #2. */
- field.ptr = fields;
+ pb_istream_t substream;
+ if (!pb_make_string_substream(stream, &substream))
+ return false;
- return pb_dec_submessage(stream, &field, dest_struct);
+ return pb_decode(&substream, fields, dest_struct);
}
int main()