Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-10-03 11:35:29 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-10-03 11:35:29 +0400
commit916a58f4e09e2fbb4be9a79517b39e9a086fa199 (patch)
tree088681d9bd7524b98d512a1a890f1b86147f80e5
parentb288bc4ea4329c1097216979faef93295fcdb0db (diff)
fix [#32743] Freed memory access when freeing materials.
-rw-r--r--source/blender/blenkernel/intern/node.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c
index 1760b3ad03a..8cede4f51a5 100644
--- a/source/blender/blenkernel/intern/node.c
+++ b/source/blender/blenkernel/intern/node.c
@@ -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)