[Bf-blender-cvs] [1c61f3e018d] master: RNA: Raise error assigning an active object which doesn't exist

Campbell Barton noreply at git.blender.org
Tue Feb 11 03:21:41 CET 2020


Commit: 1c61f3e018d383bad52a179e1241e37b234b0b0d
Author: Campbell Barton
Date:   Mon Feb 10 21:58:52 2020 +1100
Branches: master
https://developer.blender.org/rB1c61f3e018d383bad52a179e1241e37b234b0b0d

RNA: Raise error assigning an active object which doesn't exist

Previously this silently cleared the view layers active object.

===================================================================

M	source/blender/makesrna/intern/rna_layer.c

===================================================================

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;



More information about the Bf-blender-cvs mailing list