[Bf-blender-cvs] [fc5a37b] master: Recent pydriver update missed setting 'curval'

Campbell Barton noreply at git.blender.org
Mon Apr 25 07:26:04 CEST 2016


Commit: fc5a37b94ec55fa446395914e517c65aa3eef636
Author: Campbell Barton
Date:   Mon Apr 25 15:25:32 2016 +1000
Branches: master
https://developer.blender.org/rBfc5a37b94ec55fa446395914e517c65aa3eef636

Recent pydriver update missed setting 'curval'

Using PyObject's for drivers (82b0a9e36) still needs to set the 'current value'
for debug info to display in the UI.

Resolves T48251

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

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

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

diff --git a/source/blender/python/intern/bpy_driver.c b/source/blender/python/intern/bpy_driver.c
index f9c0982..9cd6fe3 100644
--- a/source/blender/python/intern/bpy_driver.c
+++ b/source/blender/python/intern/bpy_driver.c
@@ -273,6 +273,22 @@ float BPY_driver_exec(ChannelDriver *driver, const float evaltime)
 
 			if (driver_arg == NULL) {
 				driver_arg = PyFloat_FromDouble(0.0);
+				dvar->curval = 0.0f;
+			}
+			else {
+				/* no need to worry about overflow here, values from RNA are within limits. */
+				if (PyFloat_CheckExact(driver_arg)) {
+					dvar->curval = (float)PyFloat_AsDouble(driver_arg);
+				}
+				else if (PyLong_CheckExact(driver_arg)) {
+					dvar->curval = (float)PyLong_AsLong(driver_arg);
+				}
+				else if (PyBool_Check(driver_arg)) {
+					dvar->curval = (driver_arg == Py_True);
+				}
+				else {
+					dvar->curval = 0.0f;
+				}
 			}
 		}
 		else




More information about the Bf-blender-cvs mailing list