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:
authorSergey Sharybin <sergey.vfx@gmail.com>2013-05-07 19:28:42 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2013-05-07 19:28:42 +0400
commit5455928262c7b2e99c8eb9be13665d819c4089d5 (patch)
tree3b6d913321ad02f392e55a4983227b1348884671 /source/blender/makesrna/intern/rna_nodetree.c
parentc31ec62d2f5b33c46d54ddc982c0aed305c56a29 (diff)
Fix #35122: Blenderplayer crashes when loading level
Issue was caused by ntreeUpdateTree calling for a ntree which is not in G.main. This lead to issues in ntreeVerifyNodes (which is called from ntreeUpdateTree). Made is so ntreeUpdateTree now accepts main as an argument. Will work for the release, later we could either solve the TODO mentioned in ntreeUpdateTree which will eliminate need in main there or make it so context's main is used from all over where ntreeUpdateTree is called (currently there're still some usages of G.main).
Diffstat (limited to 'source/blender/makesrna/intern/rna_nodetree.c')
-rw-r--r--source/blender/makesrna/intern/rna_nodetree.c42
1 files changed, 21 insertions, 21 deletions
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
index 7c7e35a8cb4..818caa82e1f 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -741,7 +741,7 @@ static bNode *rna_NodeTree_node_new(bNodeTree *ntree, bContext *C, ReportList *r
ntreeTexCheckCyclics(ntree);
}
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(CTX_data_main(C), ntree);
nodeUpdate(ntree, node);
WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
@@ -764,7 +764,7 @@ static void rna_NodeTree_node_remove(bNodeTree *ntree, ReportList *reports, Poin
nodeFreeNode(ntree, node);
RNA_POINTER_INVALIDATE(node_ptr);
- ntreeUpdateTree(ntree); /* update group node socket links */
+ ntreeUpdateTree(G.main, ntree); /* update group node socket links */
WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
}
@@ -786,7 +786,7 @@ static void rna_NodeTree_node_clear(bNodeTree *ntree, ReportList *reports)
node = next_node;
}
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(G.main, ntree);
WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
}
@@ -841,7 +841,7 @@ static bNodeLink *rna_NodeTree_link_new(bNodeTree *ntree, ReportList *reports,
if (tonode)
nodeUpdate(ntree, tonode);
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(G.main, ntree);
WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
}
@@ -863,7 +863,7 @@ static void rna_NodeTree_link_remove(bNodeTree *ntree, ReportList *reports, Poin
nodeRemLink(ntree, link);
RNA_POINTER_INVALIDATE(link_ptr);
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(G.main, ntree);
WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
}
@@ -881,7 +881,7 @@ static void rna_NodeTree_link_clear(bNodeTree *ntree, ReportList *reports)
link = next_link;
}
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(G.main, ntree);
WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
}
@@ -969,7 +969,7 @@ static bNodeSocket *rna_NodeTree_inputs_new(bNodeTree *ntree, ReportList *report
sock = ntreeAddSocketInterface(ntree, SOCK_IN, type, name);
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(G.main, ntree);
WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
return sock;
@@ -984,7 +984,7 @@ static bNodeSocket *rna_NodeTree_outputs_new(bNodeTree *ntree, ReportList *repor
sock = ntreeAddSocketInterface(ntree, SOCK_OUT, type, name);
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(G.main, ntree);
WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
return sock;
@@ -1001,7 +1001,7 @@ static void rna_NodeTree_socket_remove(bNodeTree *ntree, ReportList *reports, bN
else {
ntreeRemoveSocketInterface(ntree, sock);
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(G.main, ntree);
WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
}
}
@@ -1018,7 +1018,7 @@ static void rna_NodeTree_inputs_clear(bNodeTree *ntree, ReportList *reports)
ntreeRemoveSocketInterface(ntree, sock);
}
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(G.main, ntree);
WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
}
@@ -1034,14 +1034,14 @@ static void rna_NodeTree_outputs_clear(bNodeTree *ntree, ReportList *reports)
ntreeRemoveSocketInterface(ntree, sock);
}
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(G.main, ntree);
WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
}
static void rna_NodeTree_interface_update(bNodeTree *ntree, bContext *C)
{
ntree->update |= NTREE_UPDATE_GROUP;
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(G.main, ntree);
ED_node_tag_update_nodetree(CTX_data_main(C), ntree);
}
@@ -1543,7 +1543,7 @@ static bNodeSocket *rna_Node_inputs_new(ID *id, bNode *node, ReportList *reports
BKE_report(reports, RPT_ERROR, "Unable to create socket");
}
else {
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(G.main, ntree);
WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
}
@@ -1561,7 +1561,7 @@ static bNodeSocket *rna_Node_outputs_new(ID *id, bNode *node, ReportList *report
BKE_reportf(reports, RPT_ERROR, "Unable to create socket");
}
else {
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(G.main, ntree);
WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
}
@@ -1578,7 +1578,7 @@ static void rna_Node_socket_remove(ID *id, bNode *node, ReportList *reports, bNo
else {
nodeRemoveSocket(ntree, node, sock);
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(G.main, ntree);
WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
}
}
@@ -1593,7 +1593,7 @@ static void rna_Node_inputs_clear(ID *id, bNode *node)
nodeRemoveSocket(ntree, node, sock);
}
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(G.main, ntree);
WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
}
@@ -1607,7 +1607,7 @@ static void rna_Node_outputs_clear(ID *id, bNode *node)
nodeRemoveSocket(ntree, node, sock);
}
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(G.main, ntree);
WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
}
@@ -1637,7 +1637,7 @@ static void rna_Node_inputs_move(ID *id, bNode *node, int from_index, int to_ind
}
}
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(G.main, ntree);
WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
}
@@ -1667,7 +1667,7 @@ static void rna_Node_outputs_move(ID *id, bNode *node, int from_index, int to_in
}
}
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(G.main, ntree);
WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
}
@@ -2120,7 +2120,7 @@ static void rna_NodeSocketInterface_update(Main *bmain, Scene *UNUSED(scene), Po
return;
ntree->update |= NTREE_UPDATE_GROUP;
- ntreeUpdateTree(ntree);
+ ntreeUpdateTree(G.main, ntree);
ED_node_tag_update_nodetree(bmain, ntree);
}
@@ -2246,7 +2246,7 @@ static void rna_NodeGroup_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *
bNode *node = (bNode *)ptr->data;
if (node->id)
- ntreeUpdateTree((bNodeTree *)node->id);
+ ntreeUpdateTree(bmain, (bNodeTree *)node->id);
ED_node_tag_update_nodetree(bmain, ntree);
}