From: Marcelo M. <mar...@us...> - 2005-12-30 01:14:36
|
Update of /cvsroot/swig/SWIG/Lib/python In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17984/Lib/python Modified Files: implicit.i pyprimtypes.swg pystdcommon.swg Log Message: securing the call to SWIG_IsOK, which is a macro Index: pyprimtypes.swg =================================================================== RCS file: /cvsroot/swig/SWIG/Lib/python/pyprimtypes.swg,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** pyprimtypes.swg 27 Dec 2005 22:06:25 -0000 1.30 --- pyprimtypes.swg 30 Dec 2005 01:14:23 -0000 1.31 *************** *** 37,42 **** /* long */ ! %fragment(SWIG_From_frag(long),"header", ! fragment="<limits.h>") { %define_as(SWIG_From_dec(long), PyInt_FromLong) } --- 37,41 ---- /* long */ ! %fragment(SWIG_From_frag(long),"header") { %define_as(SWIG_From_dec(long), PyInt_FromLong) } Index: implicit.i =================================================================== RCS file: /cvsroot/swig/SWIG/Lib/python/implicit.i,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** implicit.i 27 Dec 2005 22:06:25 -0000 1.7 --- implicit.i 30 Dec 2005 01:14:23 -0000 1.8 *************** *** 2,6 **** %include <typemaps/implicit.swg> ! #warning "This file provide the %implicit directive, which is an old and fragil" #warning "way to implement the C++ implicit conversion mechanism." #warning "Try using the more robust '%implicitconv Type;' directive instead." --- 2,6 ---- %include <typemaps/implicit.swg> ! #warning "This file provides the %implicit directive, which is an old and fragile" #warning "way to implement the C++ implicit conversion mechanism." #warning "Try using the more robust '%implicitconv Type;' directive instead." Index: pystdcommon.swg =================================================================== RCS file: /cvsroot/swig/SWIG/Lib/python/pystdcommon.swg,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** pystdcommon.swg 27 Dec 2005 22:06:25 -0000 1.14 --- pystdcommon.swg 30 Dec 2005 01:14:23 -0000 1.15 *************** *** 102,106 **** static Type as(PyObject *obj, bool throw_error) { Type v; ! if (!obj || !SWIG_IsOK(asval(obj, &v))) { if (!PyErr_Occurred()) { %type_error(swig::type_name<Type>()); --- 102,107 ---- static Type as(PyObject *obj, bool throw_error) { Type v; ! int res = asval(obj, &v); ! if (!obj || !SWIG_IsOK(res)) { if (!PyErr_Occurred()) { %type_error(swig::type_name<Type>()); *************** *** 162,167 **** template <class Type> struct traits_check<Type, value_category> { ! static bool check(PyObject *obj) { ! return obj && SWIG_IsOK(asval(obj, (Type *)(0))); } }; --- 163,169 ---- template <class Type> struct traits_check<Type, value_category> { ! static int check(PyObject *obj) { ! int res = asval(obj, (Type *)(0)); ! return obj && SWIG_IsOK(res) ? res : 0; } }; *************** *** 169,179 **** template <class Type> struct traits_check<Type, pointer_category> { ! static bool check(PyObject *obj) { ! return obj && asptr(obj, (Type **)(0)); } }; template <class Type> ! inline bool check(PyObject *obj) { return traits_check<Type, typename traits<Type>::category>::check(obj); } --- 171,182 ---- template <class Type> struct traits_check<Type, pointer_category> { ! static int check(PyObject *obj) { ! int res = asptr(obj, (Type **)(0)); ! return obj && SWIG_IsOK(res) ? res : 0; } }; template <class Type> ! inline int check(PyObject *obj) { return traits_check<Type, typename traits<Type>::category>::check(obj); } *************** *** 233,238 **** template <> struct traits_check<Type, value_category> { ! static bool check(PyObject *obj) { ! return obj && Check(obj); } }; --- 236,242 ---- template <> struct traits_check<Type, value_category> { ! static int check(PyObject *obj) { ! int res = Check(obj); ! return obj && res ? res : 0; } }; |