mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
tinybson: explicitly append int32 or int64
This commit is contained in:
parent
9cbb5c9920
commit
80ef6e19df
@ -106,7 +106,7 @@ param_export_internal(param_filter_func filter)
|
||||
case PARAM_TYPE_INT32:
|
||||
i = s->val.i;
|
||||
|
||||
if (bson_encoder_append_int(&encoder, param_name(s->param), i)) {
|
||||
if (bson_encoder_append_int32(&encoder, param_name(s->param), i)) {
|
||||
debug("BSON append failed for '%s'", param_name(s->param));
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -1503,7 +1503,7 @@ static int param_export_internal(int fd, param_filter_func filter)
|
||||
const int32_t i = s->val.i;
|
||||
PX4_DEBUG("exporting: %s (%d) size: %lu val: %" PRIi32, name, s->param, (long unsigned int)size, i);
|
||||
|
||||
if (bson_encoder_append_int(&encoder, name, i) != 0) {
|
||||
if (bson_encoder_append_int32(&encoder, name, i) != 0) {
|
||||
PX4_ERR("BSON append failed for '%s'", name);
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -575,28 +575,28 @@ int bson_encoder_append_bool(bson_encoder_t encoder, const char *name, bool valu
|
||||
}
|
||||
|
||||
int
|
||||
bson_encoder_append_int(bson_encoder_t encoder, const char *name, int64_t value)
|
||||
bson_encoder_append_int32(bson_encoder_t encoder, const char *name, int32_t value)
|
||||
{
|
||||
bool result;
|
||||
|
||||
CODER_CHECK(encoder);
|
||||
|
||||
/* use the smallest encoding that will hold the value */
|
||||
if (value == (int32_t)value) {
|
||||
debug("encoding %lld as int32", value);
|
||||
result = write_int8(encoder, BSON_INT32) ||
|
||||
write_name(encoder, name) ||
|
||||
write_int32(encoder, value);
|
||||
|
||||
} else {
|
||||
debug("encoding %lld as int64", value);
|
||||
result = write_int8(encoder, BSON_INT64) ||
|
||||
write_name(encoder, name) ||
|
||||
write_int64(encoder, value);
|
||||
if (write_int8(encoder, BSON_INT32) ||
|
||||
write_name(encoder, name) ||
|
||||
write_int32(encoder, value)) {
|
||||
CODER_KILL(encoder, "write error on BSON_INT32");
|
||||
}
|
||||
|
||||
if (result) {
|
||||
CODER_KILL(encoder, "write error on BSON_INT");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
bson_encoder_append_int64(bson_encoder_t encoder, const char *name, int64_t value)
|
||||
{
|
||||
CODER_CHECK(encoder);
|
||||
|
||||
if (write_int8(encoder, BSON_INT64) ||
|
||||
write_name(encoder, name) ||
|
||||
write_int64(encoder, value)) {
|
||||
CODER_KILL(encoder, "write error on BSON_INT64");
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -613,7 +613,6 @@ bson_encoder_append_double(bson_encoder_t encoder, const char *name, double valu
|
||||
CODER_KILL(encoder, "write error on BSON_DOUBLE");
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -256,13 +256,22 @@ __EXPORT void *bson_encoder_buf_data(bson_encoder_t encoder);
|
||||
__EXPORT int bson_encoder_append_bool(bson_encoder_t encoder, const char *name, bool value);
|
||||
|
||||
/**
|
||||
* Append an integer to the encoded stream.
|
||||
* Append an int32 to the encoded stream.
|
||||
*
|
||||
* @param encoder Encoder state.
|
||||
* @param name Node name.
|
||||
* @param value Value to be encoded.
|
||||
*/
|
||||
__EXPORT int bson_encoder_append_int(bson_encoder_t encoder, const char *name, int64_t value);
|
||||
__EXPORT int bson_encoder_append_int32(bson_encoder_t encoder, const char *name, int32_t value);
|
||||
|
||||
/**
|
||||
* Append an int64 to the encoded stream.
|
||||
*
|
||||
* @param encoder Encoder state.
|
||||
* @param name Node name.
|
||||
* @param value Value to be encoded.
|
||||
*/
|
||||
__EXPORT int bson_encoder_append_int64(bson_encoder_t encoder, const char *name, int64_t value);
|
||||
|
||||
/**
|
||||
* Append a double to the encoded stream
|
||||
|
||||
@ -65,12 +65,12 @@ encode(bson_encoder_t encoder)
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (bson_encoder_append_int(encoder, "int1", sample_small_int) != 0) {
|
||||
if (bson_encoder_append_int32(encoder, "int1", sample_small_int) != 0) {
|
||||
PX4_ERR("FAIL: encoder: append int failed");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (bson_encoder_append_int(encoder, "int2", sample_big_int) != 0) {
|
||||
if (bson_encoder_append_int64(encoder, "int2", sample_big_int) != 0) {
|
||||
PX4_ERR("FAIL: encoder: append int failed");
|
||||
return 1;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user