diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2009-04-04 00:03:09 +0400 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2009-04-04 00:03:09 +0400 |
commit | acfd7c82abdc26b7cd2859e762f12cc066a4ef68 (patch) | |
tree | 41c8ea9b40a662db1cc86bc167feec4ea563ea2b /source/blender/freestyle/intern/python/Iterator/BPy_ViewEdgeIterator.cpp | |
parent | 5926ad2db281aeb965d382533973393f0459315b (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.cpp | 14 |
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) ); |