X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=pb_decode.h;h=8dc67408a8db0a400f6b662a2d2d65583c8b6d72;hb=adf0ab81d400a49f5986d4de4b6e0dca617d5e13;hp=f71b5f1b33d911be66e09f32c26096bfb708c0c1;hpb=287207841db5df93cf7ff9c71a5f1548deb26b09;p=apps%2Fagl-service-can-low-level.git diff --git a/pb_decode.h b/pb_decode.h index f71b5f1b..8dc67408 100644 --- a/pb_decode.h +++ b/pb_decode.h @@ -73,6 +73,9 @@ bool pb_decode(pb_istream_t *stream, const pb_field_t fields[], void *dest_struc * * This can also be used for 'merging' two messages, i.e. update only the * fields that exist in the new message. + * + * Note: If this function returns with an error, it will not release any + * dynamically allocated fields. You will need to call pb_release() yourself. */ bool pb_decode_noinit(pb_istream_t *stream, const pb_field_t fields[], void *dest_struct); @@ -82,6 +85,14 @@ bool pb_decode_noinit(pb_istream_t *stream, const pb_field_t fields[], void *des */ bool pb_decode_delimited(pb_istream_t *stream, const pb_field_t fields[], void *dest_struct); +#ifdef PB_ENABLE_MALLOC +/* Release any allocated pointer fields. If you use dynamic allocation, you should + * call this for any successfully decoded message when you are done with it. If + * pb_decode() returns with an error, the message is already released. + */ +void pb_release(const pb_field_t fields[], void *dest_struct); +#endif + /************************************** * Functions for manipulating streams *