fix [#32743] Freed memory access when freeing materials.

This commit is contained in:
2012-10-03 07:35:29 +00:00
parent b288bc4ea4
commit 916a58f4e0

View 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)