Code Review
/
apps
/
agl-service-can-low-level.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Example
[apps/agl-service-can-low-level.git]
/
pb_encode.c
diff --git
a/pb_encode.c
b/pb_encode.c
index
188d768
..
2e74034
100644
(file)
--- a/
pb_encode.c
+++ b/
pb_encode.c
@@
-130,7
+130,10
@@
bool pb_encode(pb_ostream_t *stream, const pb_field_t fields[], const void *src_
{
pData = (const char*)pData + prev_size + field->data_offset;
pSize = (const char*)pData + field->size_offset;
{
pData = (const char*)pData + prev_size + field->data_offset;
pSize = (const char*)pData + field->size_offset;
- prev_size = field->data_size * field->array_size;
+
+ prev_size = field->data_size;
+ if (PB_HTYPE(field->type) == PB_HTYPE_ARRAY)
+ prev_size *= field->array_size;
pb_encoder_t func = PB_ENCODERS[PB_LTYPE(field->type)];
pb_encoder_t func = PB_ENCODERS[PB_LTYPE(field->type)];
@@
-339,7
+342,7
@@
bool pb_enc_submessage(pb_ostream_t *stream, const pb_field_t *field, const void
substream.max_size = size;
substream.bytes_written = 0;
substream.max_size = size;
substream.bytes_written = 0;
- status = pb_encode(stream, (pb_field_t*)field->ptr, src);
+ status = pb_encode(
&sub
stream, (pb_field_t*)field->ptr, src);
stream->bytes_written += substream.bytes_written;
stream->bytes_written += substream.bytes_written;