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
Update changelog
[apps/agl-service-can-low-level.git]
/
pb_decode.c
diff --git
a/pb_decode.c
b/pb_decode.c
index
91b68ea
..
d0e18cc
100644
(file)
--- a/
pb_decode.c
+++ b/
pb_decode.c
@@
-14,7
+14,6
@@
#define NANOPB_INTERNALS
#include "pb.h"
#include "pb_decode.h"
#define NANOPB_INTERNALS
#include "pb.h"
#include "pb_decode.h"
-#include <string.h>
typedef bool (*pb_decoder_t)(pb_istream_t *stream, const pb_field_t *field, void *dest) checkreturn;
typedef bool (*pb_decoder_t)(pb_istream_t *stream, const pb_field_t *field, void *dest) checkreturn;
@@
-415,6
+414,12
@@
static bool checkreturn decode_callback_field(pb_istream_t *stream, pb_wire_type
{
pb_callback_t *pCallback = (pb_callback_t*)iter->pData;
{
pb_callback_t *pCallback = (pb_callback_t*)iter->pData;
+#ifdef PB_OLD_CALLBACK_STYLE
+ void *arg = pCallback->arg;
+#else
+ void **arg = &(pCallback->arg);
+#endif
+
if (pCallback->funcs.decode == NULL)
return pb_skip_field(stream, wire_type);
if (pCallback->funcs.decode == NULL)
return pb_skip_field(stream, wire_type);
@@
-425,11
+430,11
@@
static bool checkreturn decode_callback_field(pb_istream_t *stream, pb_wire_type
if (!pb_make_string_substream(stream, &substream))
return false;
if (!pb_make_string_substream(stream, &substream))
return false;
- while (substream.bytes_left)
+ do
{
{
- if (!pCallback->funcs.decode(&substream, iter->pos,
pCallback->
arg))
+ if (!pCallback->funcs.decode(&substream, iter->pos, arg))
PB_RETURN_ERROR(stream, "callback failed");
PB_RETURN_ERROR(stream, "callback failed");
- }
+ }
while (substream.bytes_left);
pb_close_string_substream(stream, &substream);
return true;
pb_close_string_substream(stream, &substream);
return true;
@@
-448,7
+453,7
@@
static bool checkreturn decode_callback_field(pb_istream_t *stream, pb_wire_type
return false;
substream = pb_istream_from_buffer(buffer, size);
return false;
substream = pb_istream_from_buffer(buffer, size);
- return pCallback->funcs.decode(&substream, iter->pos,
pCallback->
arg);
+ return pCallback->funcs.decode(&substream, iter->pos, arg);
}
}
}
}
@@
-659,7
+664,8
@@
bool pb_decode_fixed64(pb_istream_t *stream, void *dest)
bool checkreturn pb_dec_varint(pb_istream_t *stream, const pb_field_t *field, void *dest)
{
uint64_t value;
bool checkreturn pb_dec_varint(pb_istream_t *stream, const pb_field_t *field, void *dest)
{
uint64_t value;
- bool status = pb_decode_varint(stream, &value);
+ if (!pb_decode_varint(stream, &value))
+ return false;
switch (field->data_size)
{
switch (field->data_size)
{
@@
-670,13
+676,14
@@
bool checkreturn pb_dec_varint(pb_istream_t *stream, const pb_field_t *field, vo
default: PB_RETURN_ERROR(stream, "invalid data_size");
}
default: PB_RETURN_ERROR(stream, "invalid data_size");
}
- return
status
;
+ return
true
;
}
bool checkreturn pb_dec_svarint(pb_istream_t *stream, const pb_field_t *field, void *dest)
{
int64_t value;
}
bool checkreturn pb_dec_svarint(pb_istream_t *stream, const pb_field_t *field, void *dest)
{
int64_t value;
- bool status = pb_decode_svarint(stream, &value);
+ if (!pb_decode_svarint(stream, &value))
+ return false;
switch (field->data_size)
{
switch (field->data_size)
{
@@
-685,7
+692,7
@@
bool checkreturn pb_dec_svarint(pb_istream_t *stream, const pb_field_t *field, v
default: PB_RETURN_ERROR(stream, "invalid data_size");
}
default: PB_RETURN_ERROR(stream, "invalid data_size");
}
- return
status
;
+ return
true
;
}
bool checkreturn pb_dec_fixed32(pb_istream_t *stream, const pb_field_t *field, void *dest)
}
bool checkreturn pb_dec_fixed32(pb_istream_t *stream, const pb_field_t *field, void *dest)