From: Petteri Aimonen Date: Sat, 5 Apr 2014 08:11:05 +0000 (+0300) Subject: Add a 'found' field to pb_extension_t. X-Git-Tag: 3.99.1~14^2~245 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=e5b855fec5d2977971f96d817728c7a3ee8077b2;p=apps%2Flow-level-can-service.git Add a 'found' field to pb_extension_t. Update issue 112 Status: FixedInGit --- diff --git a/pb.h b/pb.h index 6f84385..63d313d 100644 --- a/pb.h +++ b/pb.h @@ -341,6 +341,10 @@ struct _pb_extension_t { * If this extension does not match a field, the next handler is * automatically called. */ pb_extension_t *next; + + /* The decoder sets this to true if the extension was found. + * Ignored for encoding. */ + bool found; }; /* Memory allocation functions to use. You can define pb_realloc and diff --git a/pb_decode.c b/pb_decode.c index d8ac9ee..9a48c60 100644 --- a/pb_decode.c +++ b/pb_decode.c @@ -670,7 +670,6 @@ static bool checkreturn default_extension_decoder(pb_istream_t *stream, { const pb_field_t *field = (const pb_field_t*)extension->type->arg; pb_field_iterator_t iter; - bool dummy; if (field->tag != tag) return true; @@ -681,7 +680,7 @@ static bool checkreturn default_extension_decoder(pb_istream_t *stream, iter.required_field_index = 0; iter.dest_struct = extension->dest; iter.pData = extension->dest; - iter.pSize = &dummy; + iter.pSize = &extension->found; return decode_field(stream, wire_type, &iter); } diff --git a/tests/extensions/decode_extensions.c b/tests/extensions/decode_extensions.c index f8ebbde..e437438 100644 --- a/tests/extensions/decode_extensions.c +++ b/tests/extensions/decode_extensions.c @@ -49,7 +49,9 @@ int main(int argc, char **argv) } /* Check that the extensions decoded properly */ + TEST(ext1.found) TEST(extensionfield1 == 12345) + TEST(ext2.found) TEST(strcmp(extensionfield2.test1, "test") == 0) TEST(extensionfield2.test2 == 54321) diff --git a/tests/splint/splint.rc b/tests/splint/splint.rc index c77e210..421f567 100644 --- a/tests/splint/splint.rc +++ b/tests/splint/splint.rc @@ -27,6 +27,7 @@ -dependenttrans -kepttrans -branchstate +-immediatetrans # These tests give false positives, compiler typically has # better warnings for these.