[Bf-blender-cvs] [110373de6a5] blender2.8: Fix T53638: View layer renaming crashes 2/2

Dalai Felinto noreply at git.blender.org
Wed Dec 27 16:39:43 CET 2017


Commit: 110373de6a52a20eb759aea9a11e4c45fcdb619b
Author: Dalai Felinto
Date:   Wed Dec 27 13:32:30 2017 -0200
Branches: blender2.8
https://developer.blender.org/rB110373de6a52a20eb759aea9a11e4c45fcdb619b

Fix T53638: View layer renaming crashes 2/2

This fixes renaming the view layer via Python.

This bug was introduced originally in 3a95bdfc65d. Although I suspect it was
around for longer, since this commit didn't touch this part of the code.

But basically we need the id of the RNA property to be the one that owns
the data (view layer).

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

M	source/blender/makesrna/intern/rna_context.c
M	tests/python/view_layer/CMakeLists.txt
A	tests/python/view_layer/test_view_layer_rename.py

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

diff --git a/source/blender/makesrna/intern/rna_context.c b/source/blender/makesrna/intern/rna_context.c
index 3df114282fd..bcd805b0f3a 100644
--- a/source/blender/makesrna/intern/rna_context.c
+++ b/source/blender/makesrna/intern/rna_context.c
@@ -132,7 +132,11 @@ static PointerRNA rna_Context_scene_get(PointerRNA *ptr)
 static PointerRNA rna_Context_view_layer_get(PointerRNA *ptr)
 {
 	bContext *C = (bContext *)ptr->data;
-	return rna_pointer_inherit_refine(ptr, &RNA_ViewLayer, CTX_data_view_layer(C));
+	Scene *scene = CTX_data_scene(C);
+	PointerRNA scene_ptr;
+
+	RNA_id_pointer_create(&scene->id, &scene_ptr);
+	return rna_pointer_inherit_refine(&scene_ptr, &RNA_ViewLayer, CTX_data_view_layer(C));
 }
 
 static PointerRNA rna_Context_view_render_get(PointerRNA *ptr)
diff --git a/tests/python/view_layer/CMakeLists.txt b/tests/python/view_layer/CMakeLists.txt
index 22cfcd344f3..1c0648afead 100644
--- a/tests/python/view_layer/CMakeLists.txt
+++ b/tests/python/view_layer/CMakeLists.txt
@@ -178,3 +178,4 @@ VIEW_LAYER_TEST(scene_copy_e)
 VIEW_LAYER_TEST(scene_copy_f)
 VIEW_LAYER_TEST(scene_delete)
 VIEW_LAYER_TEST(scene_write_read)
+VIEW_LAYER_TEST(view_layer_rename)
diff --git a/tests/python/view_layer/test_view_layer_rename.py b/tests/python/view_layer/test_view_layer_rename.py
new file mode 100644
index 00000000000..fefb317d0b1
--- /dev/null
+++ b/tests/python/view_layer/test_view_layer_rename.py
@@ -0,0 +1,33 @@
+# ############################################################
+# Importing - Same For All Render Layer Tests
+# ############################################################
+
+import unittest
+import os
+import sys
+
+from view_layer_common import *
+
+
+# ############################################################
+# Testing
+# ############################################################
+
+class UnitTesting(ViewLayerTesting):
+    def test_view_layer_rename(self):
+        """
+        See if we can rename view layers.
+        """
+        import bpy
+        view_layer = bpy.context.view_layer
+        print("View layer name: " + view_layer.name)
+        view_layer.name = "New Name"
+
+
+# ############################################################
+# Main - Same For All Render Layer Tests
+# ############################################################
+
+if __name__ == '__main__':
+    UnitTesting._extra_arguments = setup_extra_arguments(__file__)
+    unittest.main()



More information about the Bf-blender-cvs mailing list