Fix T37939: Crash on exit (reading from freed node trees)

This commit is contained in:
Campbell Barton 2013-12-26 08:57:44 +11:00
parent ca36091266
commit d9e0a94675
Notes: blender-bot 2023-02-14 11:26:24 +01:00
Referenced by commit fa9b5d5449, Fix T37939, concern raised in rBd9e0a94: Avoid access to linked node
Referenced by issue #37939, Crash on exit (freeing nodes)
2 changed files with 6 additions and 3 deletions

View File

@ -950,7 +950,7 @@ void BKE_libblock_free_ex(ListBase *lb, void *idv, bool do_id_user)
BKE_action_free((bAction *)id);
break;
case ID_NT:
ntreeFreeTree((bNodeTree *)id);
ntreeFreeTree_ex((bNodeTree *)id, do_id_user);
break;
case ID_BR:
BKE_brush_free((Brush *)id);

View File

@ -1714,8 +1714,11 @@ void ntreeFreeTree_ex(bNodeTree *ntree, const short do_id_user)
}
}
/* XXX not nice, but needed to free localized node groups properly */
free_localized_node_groups(ntree);
/* when freeing main, this would check other ntree's which may have been freed, see [#37939] */
if (do_id_user) {
/* XXX not nice, but needed to free localized node groups properly */
free_localized_node_groups(ntree);
}
/* unregister associated RNA types */
ntreeInterfaceTypeFree(ntree);