ble_mesh: Fix wrong log output with bt_hex

- This issue was introduced in the commit: a788e7cd3d
  which updated the bt_hex() function incorrectly.
- And in bt_hex(), we use 2 for the two-dimensional array, because currently
  at most two bt_hex() will be used at the same time. Also this will save
  some DRAM compared with using 4.
This commit is contained in:
lly 2020-06-10 10:47:30 +08:00
parent 820e0ead52
commit 55f48877a4

View File

@ -17,11 +17,16 @@
const char *bt_hex(const void *buf, size_t len)
{
static const char hex[] = "0123456789abcdef";
static char str[129];
static char hexbufs[2][129];
static u8_t curbuf;
const u8_t *b = buf;
char *str = NULL;
int i;
len = MIN(len, (sizeof(str) - 1) / 2);
str = hexbufs[curbuf++];
curbuf %= ARRAY_SIZE(hexbufs);
len = MIN(len, (sizeof(hexbufs[0]) - 1) / 2);
for (i = 0; i < len; i++) {
str[i * 2] = hex[b[i] >> 4];