]> granicus.if.org Git - esp-idf/commitdiff
nvs_flash: Reduced visibility of handle counter
authorAmey Inamdar <amey.inamdar@gmail.com>
Wed, 16 Aug 2017 04:16:34 +0000 (09:46 +0530)
committerAmey Inamdar <amey.inamdar@gmail.com>
Tue, 22 Aug 2017 07:28:56 +0000 (12:58 +0530)
Monotonically increasing handle counter need not be visible outside the HandleEntry class.

Signed-off-by: Amey Inamdar <amey.inamdar@gmail.com>
components/nvs_flash/src/nvs_api.cpp

index 300ea289421fd242111c6b8836b993237855c69c..69229981f52c6ebba28067e0037e059a987706a2 100644 (file)
@@ -30,11 +30,12 @@ static const char* TAG = "nvs";
 
 class HandleEntry : public intrusive_list_node<HandleEntry>
 {
+    static uint32_t s_nvs_next_handle;
 public:
     HandleEntry() {}
 
-    HandleEntry(nvs_handle handle, bool readOnly, uint8_t nsIndex) :
-        mHandle(handle),
+    HandleEntry(bool readOnly, uint8_t nsIndex) :
+        mHandle(++s_nvs_next_handle),  // Begin the handle value with 1
         mReadOnly(readOnly),
         mNsIndex(nsIndex)
     {
@@ -53,7 +54,7 @@ using namespace std;
 using namespace nvs;
 
 static intrusive_list<HandleEntry> s_nvs_handles;
-static uint32_t s_nvs_next_handle = 1;
+uint32_t HandleEntry::s_nvs_next_handle;
 static nvs::Storage s_nvs_storage;
 
 extern "C" void nvs_dump()
@@ -121,11 +122,11 @@ extern "C" esp_err_t nvs_open(const char* name, nvs_open_mode open_mode, nvs_han
         return err;
     }
 
-    uint32_t handle = s_nvs_next_handle;
-    ++s_nvs_next_handle;
-    *out_handle = handle;
+    HandleEntry *handle_entry = new HandleEntry(open_mode==NVS_READONLY, nsIndex);
+    s_nvs_handles.push_back(handle_entry);
+
+    *out_handle = handle_entry->mHandle;
 
-    s_nvs_handles.push_back(new HandleEntry(handle, open_mode==NVS_READONLY, nsIndex));
     return ESP_OK;
 }