[Bf-blender-cvs] [87d5e344532] master: Fix T52213: Enum drivers no longer work

Campbell Barton noreply at git.blender.org
Fri Jul 28 18:30:21 CEST 2017


Commit: 87d5e34453249fbf53d22b63c4f2442e3f8ec32e
Author: Campbell Barton
Date:   Sat Jul 29 02:39:16 2017 +1000
Branches: master
https://developer.blender.org/rB87d5e34453249fbf53d22b63c4f2442e3f8ec32e

Fix T52213: Enum drivers no longer work

Regression in D1812: PyDriver variables as Objects

Taking the Python representation is nice in general
but for enums it would convert them into strings,
breaking some existing drivers.

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

M	source/blender/python/intern/bpy_rna_driver.c

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

diff --git a/source/blender/python/intern/bpy_rna_driver.c b/source/blender/python/intern/bpy_rna_driver.c
index b4c0de51c04..1135ba121e3 100644
--- a/source/blender/python/intern/bpy_rna_driver.c
+++ b/source/blender/python/intern/bpy_rna_driver.c
@@ -63,7 +63,15 @@ PyObject *pyrna_driver_get_variable_value(
 			}
 			else {
 				/* object & property */
-				driver_arg = pyrna_prop_to_py(&ptr, prop);
+				PropertyType type = RNA_property_type(prop);
+				if (type == PROP_ENUM) {
+					/* Note that enum's are converted to strings by default,
+					 * we want to avoid that, see: T52213 */
+					driver_arg = PyLong_FromLong(RNA_property_enum_get(&ptr, prop));
+				}
+				else {
+					driver_arg = pyrna_prop_to_py(&ptr, prop);
+				}
 			}
 		}
 		else {




More information about the Bf-blender-cvs mailing list