[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49680] trunk/blender/source/blender/ compositor/nodes/COM_MuteNode.cpp: Fix crash in cases when render layers node is muted
Sergey Sharybin
sergey.vfx at gmail.com
Wed Aug 8 10:15:57 CEST 2012
Revision: 49680
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49680
Author: nazgul
Date: 2012-08-08 08:15:56 +0000 (Wed, 08 Aug 2012)
Log Message:
-----------
Fix crash in cases when render layers node is muted
Modified Paths:
--------------
trunk/blender/source/blender/compositor/nodes/COM_MuteNode.cpp
Modified: trunk/blender/source/blender/compositor/nodes/COM_MuteNode.cpp
===================================================================
--- trunk/blender/source/blender/compositor/nodes/COM_MuteNode.cpp 2012-08-08 07:31:19 UTC (rev 49679)
+++ trunk/blender/source/blender/compositor/nodes/COM_MuteNode.cpp 2012-08-08 08:15:56 UTC (rev 49680)
@@ -110,6 +110,7 @@
*/
if ((editorNode->flag & NODE_MUTED) && editorNode->typeinfo->internal_connect) {
vector<InputSocket *> &inputsockets = this->getInputSockets();
+ vector<OutputSocket *> relinkedsockets;
bNodeTree *editorTree = (bNodeTree *) context->getbNodeTree();
SocketMap socketMap;
ListBase intlinks;
@@ -132,10 +133,37 @@
else {
createDefaultOutput(graph, toSocket);
}
+
+ relinkedsockets.push_back(toSocket);
}
}
}
+ /* in some cases node could be marked as muted, but it wouldn't have internal connections
+ * this happens in such cases as muted render layer node
+ *
+ * to deal with such cases create default operation for not-relinked output sockets
+ */
+
+ for (unsigned int index = 0; index < outputsockets.size(); index++) {
+ OutputSocket *output = outputsockets[index];
+
+ if (output->isConnected()) {
+ bool relinked = false;
+ vector<OutputSocket *>::iterator it;
+
+ for (it = relinkedsockets.begin(); it != relinkedsockets.end(); it++) {
+ if (*it == output) {
+ relinked = true;
+ break;
+ }
+ }
+
+ if (!relinked)
+ createDefaultOutput(graph, output);
+ }
+ }
+
BLI_freelistN(&intlinks);
}
else {
More information about the Bf-blender-cvs
mailing list