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:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2018-04-25 20:03:49 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2018-04-26 17:37:59 +0300
commitd60be68100cd306d8e1234b89b2741dc4423a332 (patch)
tree54bc4ea3eccdef3b9758f76dcfc0f29edf128303 /source/blender/depsgraph/intern
parenta31807ed7c755e65bd244025bd575fd2b183561a (diff)
Fix crash with depsgraph iterator and empty scene.
This causes crashes in the view layer tests.
Diffstat (limited to 'source/blender/depsgraph/intern')
-rw-r--r--source/blender/depsgraph/intern/depsgraph_query_iter.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/source/blender/depsgraph/intern/depsgraph_query_iter.cc b/source/blender/depsgraph/intern/depsgraph_query_iter.cc
index 6e8e474fca6..baa87aefd64 100644
--- a/source/blender/depsgraph/intern/depsgraph_query_iter.cc
+++ b/source/blender/depsgraph/intern/depsgraph_query_iter.cc
@@ -205,6 +205,7 @@ void DEG_iterator_objects_begin(BLI_Iterator *iter, DEGObjectIterData *data)
const size_t num_id_nodes = deg_graph->id_nodes.size();
if (num_id_nodes == 0) {
+ iter->data = NULL;
iter->valid = false;
return;
}
@@ -265,10 +266,13 @@ void DEG_iterator_objects_end(BLI_Iterator *iter)
{
#ifndef NDEBUG
DEGObjectIterData *data = (DEGObjectIterData *)iter->data;
- /* Force crash in case the iterator data is referenced and accessed down
- * the line. (T51718)
- */
- memset(&data->temp_dupli_object, 0xff, sizeof(data->temp_dupli_object));
+
+ if (data) {
+ /* Force crash in case the iterator data is referenced and accessed down
+ * the line. (T51718)
+ */
+ memset(&data->temp_dupli_object, 0xff, sizeof(data->temp_dupli_object));
+ }
#else
(void) iter;
#endif