From bc87d0b44cd6e70147572173cd068a0b1cbc8b33 Mon Sep 17 00:00:00 2001 From: Deomid Ryabkov Date: Sat, 21 Jan 2017 07:01:59 +0000 Subject: [PATCH] Reset SPIFFS_OBJ_ID_IX_FLAG on obj_id returned by readdir Same as stat. --- src/spiffs_hydrogen.c | 1 + src/test/test_hydrogen.c | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/spiffs_hydrogen.c b/src/spiffs_hydrogen.c index 456403c..1c2cbd9 100644 --- a/src/spiffs_hydrogen.c +++ b/src/spiffs_hydrogen.c @@ -1036,6 +1036,7 @@ struct spiffs_dirent *SPIFFS_readdir(spiffs_DIR *d, struct spiffs_dirent *e) { if (res == SPIFFS_OK) { d->block = bix; d->entry = entry + 1; + e->obj_id &= ~SPIFFS_OBJ_ID_IX_FLAG; ret = e; } else { d->fs->err_code = res; diff --git a/src/test/test_hydrogen.c b/src/test/test_hydrogen.c index 05aadb0..273327a 100644 --- a/src/test/test_hydrogen.c +++ b/src/test/test_hydrogen.c @@ -427,11 +427,17 @@ TEST(list_dir) break; } } + { + spiffs_stat s; + TEST_CHECK_EQ(SPIFFS_stat(FS, pe->name, &s), 0); + TEST_CHECK_EQ(pe->obj_id, s.obj_id); + TEST_CHECK_EQ(pe->size, s.size); + TEST_CHECK_EQ(pe->type, s.type); + TEST_CHECK_EQ(pe->pix, s.pix); #if SPIFFS_OBJ_META_LEN - for (i = 0; i < SPIFFS_OBJ_META_LEN; i++) { - TEST_CHECK_EQ(pe->meta[i], 0xff); - } + TEST_CHECK_EQ(memcmp(pe->meta, s.meta, SPIFFS_OBJ_META_LEN), 0); #endif + } } SPIFFS_closedir(&d);