diff options
author | Campbell Barton <ideasman42@gmail.com> | 2020-02-10 13:58:52 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2020-02-11 03:21:26 +0300 |
commit | 1c61f3e018d383bad52a179e1241e37b234b0b0d (patch) | |
tree | 2646b85104e26d8703eda02ee74ea17ef0725c51 /source/blender/makesrna | |
parent | 189e96ba687c88bf40f86ba64e5054c70ebde95b (diff) |
RNA: Raise error assigning an active object which doesn't exist
Previously this silently cleared the view layers active object.
Diffstat (limited to 'source/blender/makesrna')
-rw-r--r-- | source/blender/makesrna/intern/rna_layer.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/source/blender/makesrna/intern/rna_layer.c b/source/blender/makesrna/intern/rna_layer.c index 40c6229f9b1..da882959ef2 100644 --- a/source/blender/makesrna/intern/rna_layer.c +++ b/source/blender/makesrna/intern/rna_layer.c @@ -88,11 +88,22 @@ static PointerRNA rna_LayerObjects_active_object_get(PointerRNA *ptr) static void rna_LayerObjects_active_object_set(PointerRNA *ptr, PointerRNA value, - struct ReportList *UNUSED(reports)) + struct ReportList *reports) { ViewLayer *view_layer = (ViewLayer *)ptr->data; if (value.data) { - view_layer->basact = BKE_view_layer_base_find(view_layer, (Object *)value.data); + Object *ob = value.data; + Base *basact_test = BKE_view_layer_base_find(view_layer, ob); + if (basact_test != NULL) { + view_layer->basact = basact_test; + } + else { + BKE_reportf(reports, + RPT_ERROR, + "ViewLayer '%s' does not contain object '%s'", + view_layer->name, + ob->id.name + 2); + } } else { view_layer->basact = NULL; |