Explorar el Código

nvs_flash: Reduced visibility of handle counter

Monotonically increasing handle counter need not be visible outside the HandleEntry class.

Signed-off-by: Amey Inamdar <amey.inamdar@gmail.com>
Amey Inamdar hace 8 años
padre
commit
3e4e4dd07a
Se han modificado 1 ficheros con 8 adiciones y 7 borrados
  1. 8 7
      components/nvs_flash/src/nvs_api.cpp

+ 8 - 7
components/nvs_flash/src/nvs_api.cpp

@@ -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;
 }