diff --git a/src/Storage.cpp b/src/Storage.cpp index 5e3ed5381c..5d87e34d2c 100644 --- a/src/Storage.cpp +++ b/src/Storage.cpp @@ -15,7 +15,7 @@ using namespace ntimpl; -Storage* Storage::m_instance = nullptr; +std::unique_ptr Storage::m_instance; Storage::Storage() {} diff --git a/src/Storage.h b/src/Storage.h index c864ea02ae..61ece6cb68 100644 --- a/src/Storage.h +++ b/src/Storage.h @@ -8,8 +8,9 @@ #ifndef NT_STORAGE_H_ #define NT_STORAGE_H_ -#include #include +#include +#include #include "ntcore.h" @@ -40,9 +41,10 @@ private: class Storage { public: static Storage& GetInstance() { - if (!m_instance) m_instance = new Storage; + if (!m_instance) m_instance.reset(new Storage); return *m_instance; } + ~Storage(); typedef llvm::StringMap EntriesMap; @@ -55,13 +57,12 @@ class Storage { private: Storage(); - ~Storage(); Storage(const Storage&) = delete; Storage& operator=(const Storage&) = delete; EntriesMap m_entries; - static Storage* m_instance; + static std::unique_ptr m_instance; }; } // namespace ntimpl