summaryrefslogtreecommitdiffstats
path: root/pb_decode.h
diff options
context:
space:
mode:
authorPetteri Aimonen <jpa@git.mail.kapsi.fi>2012-08-26 09:56:11 +0300
committerPetteri Aimonen <jpa@git.mail.kapsi.fi>2012-08-26 11:04:55 +0300
commit160f02e4d0f8f404492ffd4d7611ba4478190da2 (patch)
treedc0548d7d3ca57af153627579164694deded3d26 /pb_decode.h
parenta7a6cdad8885b48a648ad69c9c0a3f01e0707934 (diff)
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
Diffstat (limited to 'pb_decode.h')
-rw-r--r--pb_decode.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/pb_decode.h b/pb_decode.h
index ad45efbf..483665ee 100644
--- a/pb_decode.h
+++ b/pb_decode.h
@@ -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.
*/