diff --git a/include/PartitionManager/PartitionManager.hpp b/include/PartitionManager/PartitionManager.hpp index c5d9f52..4c5792d 100644 --- a/include/PartitionManager/PartitionManager.hpp +++ b/include/PartitionManager/PartitionManager.hpp @@ -58,9 +58,8 @@ public: class basic_variables final { public: basic_variables(); - ~basic_variables(); - PartitionMap::BuildMap *PartMap; + std::unique_ptr PartMap; std::string searchPath, logFile; bool onLogical; @@ -75,7 +74,7 @@ using FunctionManager = basic_function_manager; using VariableTable = basic_variables; using Error = Helper::Error; -extern VariableTable *Variables; +extern std::unique_ptr Variables; int Main(int argc, char **argv); diff --git a/src/PartitionManager.cpp b/src/PartitionManager.cpp index f032f68..1faf9de 100644 --- a/src/PartitionManager.cpp +++ b/src/PartitionManager.cpp @@ -30,20 +30,14 @@ void init() { Helper::LoggingProperties::setLogFile("/sdcard/Documents/last_pmt_logs.log"); } -__attribute__((destructor)) -void cleanup() { - delete Variables; -} +auto Variables = std::make_unique(); -auto Variables = new VariableTable(); - -basic_variables::~basic_variables() { delete PartMap; } basic_variables::basic_variables() : logFile("/sdcard/Documents/last_pmt_logs.log"), onLogical(false), quietProcess(false), verboseMode(false), viewVersion(false), forceProcess(false) { try { - PartMap = new PartitionMap::BuildMap(); + PartMap = std::make_unique(); } catch (std::exception &) { } }