From 2bde2bb2690dbf7add9b8427911ece07d63227bb Mon Sep 17 00:00:00 2001 From: Dave Beazley Date: Wed, 20 Sep 2000 04:29:29 +0000 Subject: [PATCH] Incorporated return value optimization suggested by Jon Travis. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@864 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- SWIG/Source/Modules1.1/python.cxx | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/SWIG/Source/Modules1.1/python.cxx b/SWIG/Source/Modules1.1/python.cxx index c93d24ad8..59a4ca557 100644 --- a/SWIG/Source/Modules1.1/python.cxx +++ b/SWIG/Source/Modules1.1/python.cxx @@ -550,22 +550,14 @@ PYTHON::create_function(char *name, char *iname, SwigType *d, ParmList *l) { } else { switch(SwigType_type(d)) { case T_INT: case T_UINT: case T_BOOL: - Printf(f->code," resultobj = Py_BuildValue(\"i\",result);\n"); - break; case T_SHORT: case T_USHORT: - Printf(f->code," resultobj = Py_BuildValue(\"h\",result);\n"); - break; case T_LONG : case T_ULONG: - Printf(f->code," resultobj = Py_BuildValue(\"l\",result);\n"); - break; case T_SCHAR: case T_UCHAR : - Printf(f->code," resultobj = Py_BuildValue(\"b\",result);\n"); + Printf(f->code," resultobj = PyInt_FromLong((long)result);\n"); break; case T_DOUBLE : - Printf(f->code," resultobj = Py_BuildValue(\"d\",result);\n"); - break; case T_FLOAT : - Printf(f->code," resultobj = Py_BuildValue(\"f\",result);\n"); + Printf(f->code," resultobj = PyFloat_FromDouble(result);\n"); break; case T_CHAR : Printf(f->code," resultobj = Py_BuildValue(\"c\",result);\n"); @@ -577,7 +569,7 @@ PYTHON::create_function(char *name, char *iname, SwigType *d, ParmList *l) { SwigType_del_pointer(d); break; case T_STRING: - Printf(f->code," resultobj = Py_BuildValue(\"s\", result);\n"); + Printf(f->code," resultobj = PyString_FromString(result);\n"); break; case T_POINTER: case T_ARRAY: case T_REFERENCE: SwigType_remember(d);