mirror of
https://github.com/zlgopen/awtk.git
synced 2025-05-08 19:44:45 +08:00
improve ubjson
This commit is contained in:
parent
950bae63b1
commit
eb32c6f54c
@ -2,6 +2,7 @@
|
||||
2022/03/23
|
||||
* 改用mingw默认的宏来定义MINGW宏(感谢智明提供补丁)。
|
||||
* 修复在离线画布多次数据回流导致内存泄露的问题(感谢智明提供补丁)。
|
||||
* 完善ubjson对字符的处理(感谢攀峰提供补丁)
|
||||
|
||||
2022/03/22
|
||||
* 修复软键盘让窗口上移后再次弹出软键盘导致窗口动画不正常的问题(感谢智明提供补丁)
|
||||
|
@ -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: {
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user