From d60be68100cd306d8e1234b89b2741dc4423a332 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 25 Apr 2018 19:03:49 +0200 Subject: Fix crash with depsgraph iterator and empty scene. This causes crashes in the view layer tests. --- source/blender/depsgraph/intern/depsgraph_query_iter.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'source/blender/depsgraph/intern') 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 -- cgit v1.2.3