Browse Source

components/nvs: fix infinite loop when loading namespaces

Ivan Grokhotkov 9 years ago
parent
commit
35d50643bc
1 changed files with 2 additions and 0 deletions
  1. 2 0
      components/nvs_flash/src/nvs_storage.cpp

+ 2 - 0
components/nvs_flash/src/nvs_storage.cpp

@@ -44,6 +44,7 @@ esp_err_t Storage::init(uint32_t baseSector, uint32_t sectorCount)
         return err;
         return err;
     }
     }
 
 
+    // load namespaces list
     clearNamespaces();
     clearNamespaces();
     std::fill_n(mNamespaceUsage.data(), mNamespaceUsage.byteSize() / 4, 0);
     std::fill_n(mNamespaceUsage.data(), mNamespaceUsage.byteSize() / 4, 0);
     for (auto it = mPageManager.begin(); it != mPageManager.end(); ++it) {
     for (auto it = mPageManager.begin(); it != mPageManager.end(); ++it) {
@@ -56,6 +57,7 @@ esp_err_t Storage::init(uint32_t baseSector, uint32_t sectorCount)
             item.getValue(entry->mIndex);
             item.getValue(entry->mIndex);
             mNamespaces.push_back(entry);
             mNamespaces.push_back(entry);
             mNamespaceUsage.set(entry->mIndex, true);
             mNamespaceUsage.set(entry->mIndex, true);
+            itemIndex += item.span;
         }
         }
     }
     }
     mNamespaceUsage.set(0, true);
     mNamespaceUsage.set(0, true);