Add pb_decode_noinit and use it from pb_dec_submessage.

This avoids double initialization when decoding nested submessages.
Fixes an issue with submessage arrays that was present in previous
version of this patch.

Update issue 28
Status: FixedInGit
This commit is contained in:
Petteri Aimonen
2012-08-26 09:56:11 +03:00
parent a7a6cdad88
commit 160f02e4d0
3 changed files with 24 additions and 4 deletions

View File

@@ -48,6 +48,12 @@ bool pb_read(pb_istream_t *stream, uint8_t *buf, size_t count);
*/
bool pb_decode(pb_istream_t *stream, const pb_field_t fields[], void *dest_struct);
/* Same as pb_decode, except does not initialize the destination structure
* to default values. This is slightly faster if you need no default values
* and just do memset(struct, 0, sizeof(struct)) yourself.
*/
bool pb_decode_noinit(pb_istream_t *stream, const pb_field_t fields[], void *dest_struct);
/* --- Helper functions ---
* You may want to use these from your caller or callbacks.
*/