Skip to content

Commit bd43ebb

Browse files
committed
fix(data): list/snapshot 遍历空槽判定漏判 0xFF(全新器件擦除态), 导致列出 16 个 0xFF 脏槽作有效 key; 与 set 一致地补 (u8)k[0]==0xff 判定
1 parent 438951d commit bd43ebb

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

‎platformio_ide/src/data_config.c‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ fe_output_t data_config_dispatch(void *inst, const char *act, const char *args)
104104
for (i = 0; i < CFG_SLOTS; i++) {
105105
char k[CFG_KEY_LEN];
106106
u16 addr = base + (u16)(i * CFG_ENTRY);
107-
if (!fe_port_eeprom_get_str(addr, k, sizeof(k)) || k[0] == 0) continue;
107+
if (!fe_port_eeprom_get_str(addr, k, sizeof(k)) || k[0] == 0 || (u8)k[0] == 0xff) continue;
108108
if (n) out[n++] = ',';
109109
n += (u16)fe_snprintf(out + n, sizeof(out) - n, "\"%s\"", k);
110110
}
@@ -123,7 +123,7 @@ fe_output_t data_config_dispatch(void *inst, const char *act, const char *args)
123123
for (i = 0; i < CFG_SLOTS; i++) {
124124
char k[CFG_KEY_LEN], v[CFG_VAL_LEN];
125125
u16 addr = base + (u16)(i * CFG_ENTRY);
126-
if (!fe_port_eeprom_get_str(addr, k, sizeof(k)) || k[0] == 0) continue;
126+
if (!fe_port_eeprom_get_str(addr, k, sizeof(k)) || k[0] == 0 || (u8)k[0] == 0xff) continue;
127127
fe_port_eeprom_get_str(addr + CFG_KEY_LEN, v, sizeof(v));
128128
if (n + 6 >= sizeof(out)) break;
129129
if (out[n - 1] != '{') out[n++] = ',';

0 commit comments

Comments
 (0)