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:
authorCampbell Barton <ideasman42@gmail.com>2012-12-01 12:47:39 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-12-01 12:47:39 +0400
commitee08c27f95908f33a3ed4f97d1d147ca80922b65 (patch)
treee7f433d8dc9892c3ff72b076bf2bf2d9170fe7f8 /source/blender/compositor/nodes/COM_ImageNode.cpp
parent0da227cac105ef29ac431788a0bd33cb755013cc (diff)
fix [#33368] Crash with multilayer exr node
Diffstat (limited to 'source/blender/compositor/nodes/COM_ImageNode.cpp')
-rw-r--r--source/blender/compositor/nodes/COM_ImageNode.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/source/blender/compositor/nodes/COM_ImageNode.cpp b/source/blender/compositor/nodes/COM_ImageNode.cpp
index 729cb1b70a0..4293e344c65 100644
--- a/source/blender/compositor/nodes/COM_ImageNode.cpp
+++ b/source/blender/compositor/nodes/COM_ImageNode.cpp
@@ -83,6 +83,7 @@ void ImageNode::convertToOperations(ExecutionSystem *graph, CompositorContext *c
is_multilayer_ok = true;
for (index = 0; index < numberOfOutputs; index++) {
+ NodeOperation *operation = NULL;
socket = this->getOutputSocket(index);
if (socket->isConnected() || index == 0) {
bNodeSocket *bnodeSocket = socket->getbNodeSocket();
@@ -91,7 +92,6 @@ void ImageNode::convertToOperations(ExecutionSystem *graph, CompositorContext *c
RenderPass *rpass = (RenderPass *)BLI_findlink(&rl->passes, passindex);
if (rpass) {
- NodeOperation *operation = NULL;
imageuser->pass = passindex;
switch (rpass->channels) {
case 1:
@@ -105,16 +105,21 @@ void ImageNode::convertToOperations(ExecutionSystem *graph, CompositorContext *c
case 4:
operation = doMultilayerCheck(graph, rl, image, imageuser, framenumber, index, passindex, COM_DT_COLOR);
break;
-
default:
- /* XXX add a dummy operation? */
+ /* dummy operation is added below */
break;
}
+
if (index == 0 && operation) {
addPreviewOperation(graph, context, operation->getOutputSocket());
}
}
}
+
+ /* incase we can't load the layer */
+ if (operation == NULL) {
+ convertToOperations_invalid_index(graph, index);
+ }
}
}
}