diff --git a/src/DOM.cpp b/src/DOM.cpp index 996555f49..ea335045c 100644 --- a/src/DOM.cpp +++ b/src/DOM.cpp @@ -483,6 +483,12 @@ bool getDOM (const std::string& name, const Task& task, Variant& value) // // This makes the DOM class a reusible object. +//////////////////////////////////////////////////////////////////////////////// +DOM::~DOM () +{ + delete _node; +} + //////////////////////////////////////////////////////////////////////////////// void DOM::addSource ( const std::string&, diff --git a/src/DOM.h b/src/DOM.h index 64a9cb403..4d8cc5269 100644 --- a/src/DOM.h +++ b/src/DOM.h @@ -38,6 +38,7 @@ bool getDOM (const std::string&, const Task&, Variant&); class DOM { public: + ~DOM (); void addSource (const std::string&, bool (*)(const std::string&, Variant&)); bool valid (const std::string&) const; Variant get (const Task&, const std::string&) const; @@ -47,13 +48,15 @@ public: std::string dump () const; private: - std::vector decomposeReference (const std::string&) const; - std::string dumpNode (const std::shared_ptr , int) const; + class Node + { + public: + ~Node (); + }; private: - std::string _name {"Unknown"}; - std::shared_ptr _provider {nullptr}; - std::vector > _branches {}; + DOM::Node* _node {nullptr}; }; #endif +////////////////////////////////////////////////////////////////////////////////