diff options
-rw-r--r-- | source/blender/blenkernel/BKE_scene.h | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/scene.c | 14 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_scene.c | 2 |
3 files changed, 7 insertions, 12 deletions
diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h index 3ab923f05f6..2a5e4527676 100644 --- a/source/blender/blenkernel/BKE_scene.h +++ b/source/blender/blenkernel/BKE_scene.h @@ -110,8 +110,7 @@ void BKE_toolsettings_free(struct ToolSettings *toolsettings); struct Scene *BKE_scene_duplicate(struct Main *bmain, struct Scene *sce, eSceneCopyMethod type); void BKE_scene_groups_relink(struct Scene *sce); -struct Scene *BKE_scene_find_from_view_layer(const struct Main *bmain, - const struct ViewLayer *layer); +bool BKE_scene_has_view_layer(const struct Scene *scene, const struct ViewLayer *layer); struct Scene *BKE_scene_find_from_collection(const struct Main *bmain, const struct Collection *collection); diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 1dc51c9ddae..9edd56c984f 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -1129,15 +1129,9 @@ int BKE_scene_base_iter_next( return iter->phase; } -Scene *BKE_scene_find_from_view_layer(const Main *bmain, const ViewLayer *layer) +bool BKE_scene_has_view_layer(const Scene *scene, const ViewLayer *layer) { - for (Scene *scene = bmain->scenes.first; scene; scene = scene->id.next) { - if (BLI_findindex(&scene->view_layers, layer) != -1) { - return scene; - } - } - - return NULL; + return BLI_findindex(&scene->view_layers, layer) != -1; } Scene *BKE_scene_find_from_collection(const Main *bmain, const Collection *collection) @@ -2255,9 +2249,11 @@ static Depsgraph **scene_get_depsgraph_p(Main *bmain, const bool allocate_ghash_entry, const bool allocate_depsgraph) { + /* bmain may be NULL here! */ BLI_assert(scene != NULL); BLI_assert(view_layer != NULL); - BLI_assert(BKE_scene_find_from_view_layer(bmain, view_layer) == scene); + BLI_assert(BKE_scene_has_view_layer(scene, view_layer)); + /* Make sure hash itself exists. */ if (allocate_ghash_entry) { BKE_scene_ensure_depsgraph_hash(scene); diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index ec1a77c9520..54d349a7950 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -929,7 +929,7 @@ static const char *rna_Scene_statistics_string_get(Scene *scene, ReportList *reports, ViewLayer *view_layer) { - if (BKE_scene_find_from_view_layer(bmain, view_layer) != scene) { + if (!BKE_scene_has_view_layer(scene, view_layer)) { BKE_reportf(reports, RPT_ERROR, "View Layer '%s' not found in scene '%s'", |