Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2009-04-04 00:03:09 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2009-04-04 00:03:09 +0400
commitacfd7c82abdc26b7cd2859e762f12cc066a4ef68 (patch)
tree41c8ea9b40a662db1cc86bc167feec4ea563ea2b /source/blender/freestyle/intern/python/Iterator/BPy_ViewEdgeIterator.cpp
parent5926ad2db281aeb965d382533973393f0459315b (diff)
Relaxed type checking concerning boolean arguments in class constructors
and __call__ methods so that not only True and False but also various other boolean expressions (e.g., 0, 1, and None) are accepted.
Diffstat (limited to 'source/blender/freestyle/intern/python/Iterator/BPy_ViewEdgeIterator.cpp')
-rw-r--r--source/blender/freestyle/intern/python/Iterator/BPy_ViewEdgeIterator.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/source/blender/freestyle/intern/python/Iterator/BPy_ViewEdgeIterator.cpp b/source/blender/freestyle/intern/python/Iterator/BPy_ViewEdgeIterator.cpp
index 9b913510e4d..ae1ceaf5da1 100644
--- a/source/blender/freestyle/intern/python/Iterator/BPy_ViewEdgeIterator.cpp
+++ b/source/blender/freestyle/intern/python/Iterator/BPy_ViewEdgeIterator.cpp
@@ -135,8 +135,16 @@ int ViewEdgeIterator___init__(BPy_ViewEdgeIterator *self, PyObject *args )
self->ve_it = new ViewEdgeInternal::ViewEdgeIterator(*( ((BPy_ViewEdgeIterator *) obj1)->ve_it ));
} else {
- ViewEdge *begin = ( obj1 && BPy_ViewEdge_Check(obj1) ) ? ((BPy_ViewEdge *) obj1)->ve : 0;
- bool orientation = ( obj2 && PyBool_Check(obj2) ) ? bool_from_PyBool(obj2) : true;
+ ViewEdge *begin;
+ if ( !obj1 || obj1 == Py_None )
+ begin = NULL;
+ else if ( BPy_ViewEdge_Check(obj1) )
+ begin = ((BPy_ViewEdge *) obj1)->ve;
+ else {
+ PyErr_SetString(PyExc_TypeError, "1st argument must be either a ViewEdge object or None");
+ return -1;
+ }
+ bool orientation = ( obj2 ) ? bool_from_PyBool(obj2) : true;
self->ve_it = new ViewEdgeInternal::ViewEdgeIterator( begin, orientation);
@@ -192,7 +200,7 @@ PyObject *ViewEdgeIterator_getOrientation( BPy_ViewEdgeIterator *self ) {
PyObject *ViewEdgeIterator_setOrientation( BPy_ViewEdgeIterator *self, PyObject *args ) {
PyObject *py_b;
- if(!( PyArg_ParseTuple(args, "O!", &PyBool_Type, &py_b) ))
+ if(!( PyArg_ParseTuple(args, "O", &py_b) ))
return NULL;
self->ve_it->setOrientation( bool_from_PyBool(py_b) );