fix endian

This commit is contained in:
lixianjing 2021-12-01 18:39:41 +08:00
parent dd86587bf2
commit 1d1b0b2824
4 changed files with 26 additions and 1 deletions

View File

@ -4,6 +4,7 @@
* edit增加事件EVT\_IM\_ACTION感谢兆坤提供补丁
* 修复 awtk 的 nanovg\_plus 的获取当前裁剪区不正常的问题 (感谢智明提供补丁)
* 修复 widget\_set\_as\_key\_target 递归各个父集后导致全屏刷新的问题 (感谢智明提供补丁)
* 修复 int16\_endian\_invert(严重BUG请更新代码)。
2021/11/29
* 完善event\_from\_name感谢兆坤提供补丁

View File

@ -40,7 +40,12 @@ static inline bool_t is_little_endian(void) {
}
static inline int16_t int16_endian_invert(int16_t value) {
return (value << 8) | (value >> 8);
int16_t ret = value;
uint8_t* p = (uint8_t*)&ret;
swap_uint8(p, p + 1);
return ret;
}
static inline int16_t int16_to_big_endian(int16_t value) {

View File

@ -9,6 +9,12 @@ TEST(Endian, int16) {
ASSERT_EQ(int16_from_big_endian(int16_to_big_endian(a)), a);
}
TEST(Endian, int16_10) {
int16_t a = 1000;
ASSERT_EQ(is_little_endian(), TRUE);
ASSERT_EQ(int16_from_big_endian(int16_to_big_endian(a)), a);
}
TEST(Endian, int32) {
int32_t a = 0x11223344;
ASSERT_EQ(is_little_endian(), TRUE);

View File

@ -138,6 +138,19 @@ TEST(UBJsonReader, int32) {
ubjson_reader_reset(&ur);
}
TEST(UBJsonReader, int) {
PREPARE_TEST();
ASSERT_EQ(ubjson_writer_write_int(&ub, 1000), RET_OK);
rb.capacity = wb.cursor;
ASSERT_EQ(ubjson_reader_read(&ur, &v), RET_OK);
ASSERT_EQ(v.type == VALUE_TYPE_INT16, true);
ASSERT_EQ(value_int(&v), 1000);
ubjson_reader_reset(&ur);
}
TEST(UBJsonReader, int64) {
PREPARE_TEST();