fix for carve memory leak, update carve to hg bf36d92ff093
[blender.git] / extern / carve / include / carve / rtree.hpp
index 77f93c14e0833749e02d4e9bbce8a3ff56a7a6a6..65d46e5a48db7868b3bc83d290dc7d00e69de1a4 100644 (file)
@@ -49,8 +49,6 @@ namespace carve {
 
       aabb_t getAABB() const { return bbox; }
 
-
-
       struct data_aabb_t {
         aabb_t bbox;
         data_t data;
@@ -164,6 +162,17 @@ namespace carve {
         _fill(begin, end, typename std::iterator_traits<iter_t>::value_type());
       }
 
+      ~RTreeNode() {
+        if (child) {
+          RTreeNode *next = child;
+          while (next) {
+            RTreeNode *curr = next;
+            next = next->sibling;
+            delete curr;
+          }
+        }
+      }
+
 
 
       // functor for ordering nodes by increasing aabb midpoint, along a specified axis.