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)
{
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()
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;
}