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
This commit is contained in:
Petteri Aimonen
2011-12-30 08:43:50 +00:00
parent ad7a0e2111
commit 1506450b11
5 changed files with 67 additions and 26 deletions

View File

@@ -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");
}