fix [#32743] Freed memory access when freeing materials.
authorCampbell Barton <ideasman42@gmail.com>
Wed, 3 Oct 2012 07:35:29 +0000 (07:35 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 3 Oct 2012 07:35:29 +0000 (07:35 +0000)
source/blender/blenkernel/intern/node.c

index 1760b3a..8cede4f 100644 (file)
@@ -1030,9 +1030,18 @@ void ntreeFreeTree_ex(bNodeTree *ntree, const short do_id_user)
                next = node->next;
 
                /* ntreeUserIncrefID inline */
+
+               /* XXX, this is correct, however when freeing the entire database
+                * this ends up accessing freed data which isn't properly unlinking
+                * its self from scene nodes, SO - for now prefer invalid usercounts
+                * on free rather then bad memory access - Campbell */
+#if 0
                if (do_id_user) {
                        id_us_min(node->id);
                }
+#else
+               (void)do_id_user;
+#endif
 
                nodeFreeNode(ntree, node);
        }
@@ -1047,15 +1056,7 @@ void ntreeFreeTree_ex(bNodeTree *ntree, const short do_id_user)
 /* same as ntreeFreeTree_ex but always manage users */
 void ntreeFreeTree(bNodeTree *ntree)
 {
-       /* XXX, this is correct, however when freeing the entire database
-        * this ends up accessing freed data which isn't properly unlinking
-        * its self from scene nodes, SO - for now prefer invalid usercounts
-        * on free rather then bad memory access - Campbell */
-#if 0
        ntreeFreeTree_ex(ntree, TRUE);
-#else
-       ntreeFreeTree_ex(ntree, FALSE);
-#endif
 }
 
 void ntreeFreeCache(bNodeTree *ntree)