[3.0] Fix memory leak, scene graph layers are never deleted from memory
[platform/core/uifw/dali-core.git] / dali / devel-api / common / owner-container.h
index 108d1a4..3ac0df2 100644 (file)
@@ -78,7 +78,7 @@ public:
    */
   Iterator Erase( Iterator position )
   {
-    delete (*position);
+    Delete (*position);
     return Vector< T >::Erase( position );
   }
 
@@ -103,7 +103,7 @@ public:
     ConstIterator end = Vector< T >::End();
     for( Iterator iter = Vector< T >::Begin(); iter != end; ++iter )
     {
-      delete (*iter);
+      Delete (*iter);
     }
     Vector< T >::Clear();
   }
@@ -120,7 +120,7 @@ public:
       ConstIterator end = Vector< T >::End();
       for( Iterator iter = Vector< T >::Begin() + size; iter != end; ++iter )
       {
-        delete (*iter);
+        Delete (*iter);
       }
     }
     Vector< T >::Resize( size );
@@ -166,6 +166,17 @@ private:
   // Undefined assignment operator.
   OwnerContainer& operator=( const OwnerContainer& );
 
+  /**
+   * @brief delete the contents of the pointer
+   * Function provided to allow classes to provide a custom destructor through template specialisation
+   * @param pointer to the object
+   */
+  void Delete( T pointer )
+  {
+    delete pointer;
+  }
+
+
 };
 
 } // namespace Dali