diff options
author | Petteri Aimonen <jpa@npb.mail.kapsi.fi> | 2011-12-30 08:43:50 +0000 |
---|---|---|
committer | Petteri Aimonen <jpa@npb.mail.kapsi.fi> | 2011-12-30 08:43:50 +0000 |
commit | 1506450b119a504259983692cca4c8cd3daddaf1 (patch) | |
tree | 33e9d13dac92904942c9d822148a5173b0542673 /tests/test_decode1.c | |
parent | ad7a0e2111aaf599466153097e4c8eebf476244d (diff) |
Fixed a bug related to submessage encoding into memory buffer.
Stream state was not copied back from substream in pb_enc_submessage,
which caused garbage output if the stream callback modified the state.
Expanded tests to cover this problem.
Thanks to Paweł Pery for debugging and reporting this problem.
git-svn-id: https://svn.kapsi.fi/jpa/nanopb@1089 e3a754e5-d11d-0410-8d38-ebb782a927b9
Diffstat (limited to 'tests/test_decode1.c')
-rw-r--r-- | tests/test_decode1.c | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/tests/test_decode1.c b/tests/test_decode1.c index b412ea85..3b72f664 100644 --- a/tests/test_decode1.c +++ b/tests/test_decode1.c @@ -34,19 +34,22 @@ bool print_person(pb_istream_t *stream) printf("phone {\n"); printf(" number: \"%s\"\n", phone->number); - switch (phone->type) + if (phone->has_type) { - case Person_PhoneType_WORK: - printf(" type: WORK\n"); - break; - - case Person_PhoneType_HOME: - printf(" type: HOME\n"); - break; - - case Person_PhoneType_MOBILE: - printf(" type: MOBILE\n"); - break; + switch (phone->type) + { + case Person_PhoneType_WORK: + printf(" type: WORK\n"); + break; + + case Person_PhoneType_HOME: + printf(" type: HOME\n"); + break; + + case Person_PhoneType_MOBILE: + printf(" type: MOBILE\n"); + break; + } } printf("}\n"); } |