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:
authorThomas Dinges <blender@dingto.org>2013-06-26 15:46:55 +0400
committerThomas Dinges <blender@dingto.org>2013-06-26 15:46:55 +0400
commit63f1e253c360dcb550bc4b492ccdf0bebf3afa22 (patch)
tree1dfc762a92efa44b1eb301f970bbf98f7f46827c /source/blender/blenkernel/intern/node.c
parent00234dab2f1a697a33659beee4f4c8856b5ce233 (diff)
parentd5fd3b36888902367b07d92f7c606a95d603e23b (diff)
Merged revision(s) 57671-57767 from trunk/blender into soc-2013-dingto
Diffstat (limited to 'source/blender/blenkernel/intern/node.c')
-rw-r--r--source/blender/blenkernel/intern/node.c60
1 files changed, 33 insertions, 27 deletions
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c
index 14be1cef8cc..170b4156b21 100644
--- a/source/blender/blenkernel/intern/node.c
+++ b/source/blender/blenkernel/intern/node.c
@@ -3548,33 +3548,39 @@ void init_nodesystem(void)
void free_nodesystem(void)
{
- NODE_TYPES_BEGIN(nt)
- if (nt->ext.free) {
- nt->ext.free(nt->ext.data);
- }
- NODE_TYPES_END
-
- NODE_SOCKET_TYPES_BEGIN(st)
- if (st->ext_socket.free)
- st->ext_socket.free(st->ext_socket.data);
- if (st->ext_interface.free)
- st->ext_interface.free(st->ext_interface.data);
- NODE_SOCKET_TYPES_END
-
- NODE_TREE_TYPES_BEGIN(nt)
- if (nt->ext.free) {
- nt->ext.free(nt->ext.data);
- }
- NODE_TREE_TYPES_END
-
- BLI_ghash_free(nodetypes_hash, NULL, node_free_type);
- nodetypes_hash = NULL;
-
- BLI_ghash_free(nodesockettypes_hash, NULL, node_free_socket_type);
- nodesockettypes_hash = NULL;
-
- BLI_ghash_free(nodetreetypes_hash, NULL, ntree_free_type);
- nodetreetypes_hash = NULL;
+ if (nodetypes_hash) {
+ NODE_TYPES_BEGIN(nt)
+ if (nt->ext.free) {
+ nt->ext.free(nt->ext.data);
+ }
+ NODE_TYPES_END
+
+ BLI_ghash_free(nodetypes_hash, NULL, node_free_type);
+ nodetypes_hash = NULL;
+ }
+
+ if (nodesockettypes_hash) {
+ NODE_SOCKET_TYPES_BEGIN(st)
+ if (st->ext_socket.free)
+ st->ext_socket.free(st->ext_socket.data);
+ if (st->ext_interface.free)
+ st->ext_interface.free(st->ext_interface.data);
+ NODE_SOCKET_TYPES_END
+
+ BLI_ghash_free(nodesockettypes_hash, NULL, node_free_socket_type);
+ nodesockettypes_hash = NULL;
+ }
+
+ if (nodetreetypes_hash) {
+ NODE_TREE_TYPES_BEGIN(nt)
+ if (nt->ext.free) {
+ nt->ext.free(nt->ext.data);
+ }
+ NODE_TREE_TYPES_END
+
+ BLI_ghash_free(nodetreetypes_hash, NULL, ntree_free_type);
+ nodetreetypes_hash = NULL;
+ }
}
/* called from BKE_scene_unlink, when deleting a scene goes over all scenes