diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-10-03 11:35:29 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-10-03 11:35:29 +0400 |
commit | 916a58f4e09e2fbb4be9a79517b39e9a086fa199 (patch) | |
tree | 088681d9bd7524b98d512a1a890f1b86147f80e5 | |
parent | b288bc4ea4329c1097216979faef93295fcdb0db (diff) |
fix [#32743] Freed memory access when freeing materials.
-rw-r--r-- | source/blender/blenkernel/intern/node.c | 17 |
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) |