improve ubjson

This commit is contained in:
lixianjing 2022-03-23 18:02:12 +08:00
parent 950bae63b1
commit eb32c6f54c
4 changed files with 37 additions and 4 deletions

View File

@ -2,6 +2,7 @@
2022/03/23
* 改用mingw默认的宏来定义MINGW宏感谢智明提供补丁
* 修复在离线画布多次数据回流导致内存泄露的问题(感谢智明提供补丁)。
* 完善ubjson对字符的处理(感谢攀峰提供补丁)
2022/03/22
* 修复软键盘让窗口上移后再次弹出软键盘导致窗口动画不正常的问题(感谢智明提供补丁)

View File

@ -133,10 +133,15 @@ ret_t ubjson_reader_read(ubjson_reader_t* reader, value_t* v) {
break;
}
case UBJSON_MARKER_CHAR: {
char value = 0;
return_value_if_fail(ubjson_reader_read_data(reader, &value, sizeof(value)) == RET_OK,
RET_FAIL);
value_set_int8(v, value);
int len = 1;
str_t* str = &(reader->str);
return_value_if_fail(str_extend(str, len + 1) == RET_OK, RET_OOM);
return_value_if_fail(ubjson_reader_read_data(reader, str->str, len) == RET_OK, RET_FAIL);
str->str[len] = '\0';
value_set_str(v, str->str);
break;
}
case UBJSON_MARKER_STRING: {

View File

@ -112,6 +112,19 @@ TEST(UBJsonReader, int8) {
ubjson_reader_reset(&ur);
}
TEST(UBJsonReader, char) {
PREPARE_TEST();
ASSERT_EQ(ubjson_writer_write_char(&ub, 'a'), RET_OK);
rb.capacity = wb.cursor;
ASSERT_EQ(ubjson_reader_read(&ur, &v), RET_OK);
ASSERT_EQ(v.type == VALUE_TYPE_STRING, true);
ASSERT_STREQ(value_str(&v), "a");
ubjson_reader_reset(&ur);
}
TEST(UBJsonReader, int16) {
PREPARE_TEST();

View File

@ -98,6 +98,20 @@ TEST(UBJsonWriter, int8) {
ASSERT_EQ(wb.cursor, 2u);
}
TEST(UBJsonWriter, char) {
uint8_t buff[256];
wbuffer_t wb;
ubjson_writer_t ub;
wbuffer_init(&wb, buff, sizeof(buff));
ubjson_writer_init(&ub, (ubjson_write_callback_t)wbuffer_write_binary, &wb);
ASSERT_EQ(ubjson_writer_write_char(&ub, 'a'), RET_OK);
ASSERT_EQ(buff[0], UBJSON_MARKER_CHAR);
ASSERT_EQ(buff[1], 'a');
ASSERT_EQ(wb.cursor, 2u);
}
TEST(UBJsonWriter, int16) {
uint8_t buff[256];
wbuffer_t wb;