[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53192] trunk/blender/source/blender/ python/intern/bpy_rna.c: py api: be more strict with boolean assignment, only accept 0 or 1, True/False.
Campbell Barton
ideasman42 at gmail.com
Thu Dec 20 04:08:31 CET 2012
Revision: 53192
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53192
Author: campbellbarton
Date: 2012-12-20 03:08:27 +0000 (Thu, 20 Dec 2012)
Log Message:
-----------
py api: be more strict with boolean assignment, only accept 0 or 1, True/False. Would allow any nonzero value.
Modified Paths:
--------------
trunk/blender/source/blender/python/intern/bpy_rna.c
Modified: trunk/blender/source/blender/python/intern/bpy_rna.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_rna.c 2012-12-20 02:57:04 UTC (rev 53191)
+++ trunk/blender/source/blender/python/intern/bpy_rna.c 2012-12-20 03:08:27 UTC (rev 53192)
@@ -1510,12 +1510,18 @@
/* prefer not to have an exception here
* however so many poll functions return None or a valid Object.
* its a hassle to convert these into a bool before returning, */
- if (RNA_property_flag(prop) & PROP_OUTPUT)
+ if (RNA_property_flag(prop) & PROP_OUTPUT) {
param = PyObject_IsTrue(value);
- else
+ }
+ else {
param = PyLong_AsLong(value);
- if (param < 0) {
+ if (UNLIKELY(param & ~1)) { /* only accept 0/1 */
+ param = -1; /* error out below */
+ }
+ }
+
+ if (param == -1) {
PyErr_Format(PyExc_TypeError,
"%.200s %.200s.%.200s expected True/False or 0/1, not %.200s",
error_prefix, RNA_struct_identifier(ptr->type),
More information about the Bf-blender-cvs
mailing list