]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOTreeNode.cpp
set vectors of pointers (with many memory leak) as vectors of shared_ptr
[creaImageIO.git] / src2 / creaImageIOTreeNode.cpp
index e34b31facbfc6f7bc93f304c64ba7c75973f98b1..e14bc8450b8fe6dd5514f5283e921e4f679c6a5b 100644 (file)
@@ -2,7 +2,10 @@
 #include <creaImageIOTree.h>
 #include <creaImageIOSystem.h>
 #include <algorithm>
-
+#include <creaImageIOGimmick.h>
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
 namespace creaImageIO
 {
   namespace tree
@@ -11,8 +14,7 @@ namespace creaImageIO
     //=============================================================
     /// Ctor with parent
     Node::Node(Node* parent)
-      : mParent(parent),
-       mData(0),
+      : mParent(parent),//mData(0),
        mChildrenLoaded(false)
     {
       if (parent) 
@@ -20,8 +22,8 @@ namespace creaImageIO
          GimmickDebugMessage(6,"Default Node constructor (level "<<GetLevel()<<")"
                         << std::endl);
          // Insert into parent's children list
-         parent->GetChildrenList().push_back(this);
          InitializeAttributeMap();
+        parent->GetChildrenList().push_back(this);
        }
       else
        {
@@ -34,12 +36,12 @@ namespace creaImageIO
     //=============================================================
     /// Ctor with parent and attributes map 
     Node::Node(Node* parent, const AttributeMapType& attr)
-     : mParent(parent),
-       mData(0),
+     : mParent(parent),//mData(0),
        mChildrenLoaded(false)
     {
       GimmickDebugMessage(6,"Node constructor (level "<<GetLevel()<<")"
                     << std::endl);
+
      if (parent) 
        {
          // Insert into parent's children list
@@ -76,11 +78,7 @@ namespace creaImageIO
        {
          delete *i;
        }
-      if (mData) 
-       {
-         delete mData;
-         mData = 0;
-       }
+
     }
     //=============================================================
 
@@ -130,7 +128,7 @@ namespace creaImageIO
     //=============================================================
 
     //=============================================================
-    void Node::RemoveChildrenFromList(Node* node)
+    int Node::RemoveChildrenFromList(Node* node)
     {
       ChildrenListType::iterator i = find(GetChildrenList().begin(),
                                          GetChildrenList().end(),
@@ -139,6 +137,7 @@ namespace creaImageIO
        {
          GetChildrenList().erase(i);
        }
+       return GetChildrenList().size();
     }
     //=============================================================