summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pb_encode.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/pb_encode.c b/pb_encode.c
index b0a736a2..00c381c0 100644
--- a/pb_encode.c
+++ b/pb_encode.c
@@ -220,11 +220,15 @@ static bool checkreturn encode_basic_field(pb_ostream_t *stream,
if(bytes->size == 0)
implicit_has = false;
}
- else if ((PB_LTYPE(field->type) == PB_LTYPE_STRING && *(const char*)pData == '\0') ||
- (field->data_size == sizeof(uint_least8_t) && *(const uint_least8_t*)pData == 0) ||
- (field->data_size == sizeof(uint_least16_t) && *(const uint_least16_t*)pData == 0) ||
- (field->data_size == sizeof(uint32_t) && *(const uint_least32_t*)pData == 0) ||
- (field->data_size == sizeof(uint64_t) && *(const uint_least64_t*)pData == 0))
+ else if (PB_LTYPE(field->type) == PB_LTYPE_STRING )
+ {
+ if( *(const char*)pData == '\0')
+ implicit_has = false;
+ }
+ else if ((field->data_size == sizeof(uint_least8_t) && *(const uint_least8_t*)pData == 0) ||
+ (field->data_size == sizeof(uint_least16_t) && *(const uint_least16_t*)pData == 0) ||
+ (field->data_size == sizeof(uint32_t) && *(const uint_least32_t*)pData == 0) ||
+ (field->data_size == sizeof(uint64_t) && *(const uint_least64_t*)pData == 0))
{
implicit_has = false;
}