From a2f5af9dddb9b691a9afe96c667ea1ffc342e5cd Mon Sep 17 00:00:00 2001 From: Marcelo Matus Date: Thu, 26 May 2005 20:43:33 +0000 Subject: [PATCH] fix #1188207 and uniform the error/null/none handling git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7225 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Lib/python/pycontainer.swg | 3 +-- Lib/python/pystrings.swg | 3 ++- Lib/python/pywstrings.swg | 4 ++-- Lib/python/std_map.i | 15 +++++---------- Lib/python/std_multimap.i | 3 +-- 5 files changed, 11 insertions(+), 17 deletions(-) diff --git a/Lib/python/pycontainer.swg b/Lib/python/pycontainer.swg index 0d5769881..286e3674a 100644 --- a/Lib/python/pycontainer.swg +++ b/Lib/python/pycontainer.swg @@ -613,8 +613,7 @@ namespace swig } else { PyErr_SetString(PyExc_OverflowError, "sequence size not valid in python"); - Py_INCREF(Py_None); - return Py_None; + return NULL; } } }; diff --git a/Lib/python/pystrings.swg b/Lib/python/pystrings.swg index 99fb68d25..3c1806194 100644 --- a/Lib/python/pystrings.swg +++ b/Lib/python/pystrings.swg @@ -138,7 +138,8 @@ SWIGINTERNINLINE PyObject * SWIG_FromCharArray(const char* carray, size_t size) { if (size > INT_MAX) { - return Py_None; + return SWIG_NewPointerObj(SWIG_const_cast(carray,char *), + SWIG_TypeQuery("char *"), 0); } else { return PyString_FromStringAndSize(carray, SWIG_numeric_cast(size,int)); } diff --git a/Lib/python/pywstrings.swg b/Lib/python/pywstrings.swg index 3841a9c8e..b2a0b1169 100644 --- a/Lib/python/pywstrings.swg +++ b/Lib/python/pywstrings.swg @@ -132,8 +132,8 @@ SWIGINTERNINLINE PyObject * SWIG_FromWCharArray(const wchar_t * carray, size_t size) { if (size > INT_MAX) { - SWIG_NewPointerObj(SWIG_const_cast(carray,wchar_t *), SWIG_TypeQuery("wchar_t *"), 0); - return Py_None; + return SWIG_NewPointerObj(SWIG_const_cast(carray,wchar_t *), + SWIG_TypeQuery("wchar_t *"), 0); } else { return PyUnicode_FromWideChar(carray, SWIG_numeric_cast(size,int)); } diff --git a/Lib/python/std_map.i b/Lib/python/std_map.i index 703e77373..4504e767b 100644 --- a/Lib/python/std_map.i +++ b/Lib/python/std_map.i @@ -43,8 +43,7 @@ if (pysize < 0) { PyErr_SetString(PyExc_OverflowError, "map size not valid in python"); - Py_INCREF(Py_None); - return Py_None; + return NULL; } PyObject *obj = PyDict_New(); for (const_iterator i= map.begin(); i!= map.end(); ++i) { @@ -93,8 +92,7 @@ if (pysize < 0) { PyErr_SetString(PyExc_OverflowError, "map size not valid in python"); - Py_INCREF(Py_None); - return Py_None; + return NULL; } PyObject* keyList = PyList_New(pysize); Map::const_iterator i = self->begin(); @@ -110,8 +108,7 @@ if (pysize < 0) { PyErr_SetString(PyExc_OverflowError, "map size not valid in python"); - Py_INCREF(Py_None); - return Py_None; + return NULL; } PyObject* valList = PyTuple_New(pysize); Map::const_iterator i = self->begin(); @@ -127,8 +124,7 @@ if (pysize < 0) { PyErr_SetString(PyExc_OverflowError, "map size not valid in python"); - Py_INCREF(Py_None); - return Py_None; + return NULL; } PyObject* itemList = PyTuple_New(pysize); Map::const_iterator i = self->begin(); @@ -149,8 +145,7 @@ if (pysize < 0) { PyErr_SetString(PyExc_OverflowError, "map size not valid in python"); - Py_INCREF(Py_None); - return Py_None; + return NULL; } PyObject* keyTuple = PyTuple_New(pysize); Map::const_iterator i = self->begin(); diff --git a/Lib/python/std_multimap.i b/Lib/python/std_multimap.i index 2431925f8..dde24fda1 100644 --- a/Lib/python/std_multimap.i +++ b/Lib/python/std_multimap.i @@ -43,8 +43,7 @@ if (pysize < 0) { PyErr_SetString(PyExc_OverflowError, "multimap size not valid in python"); - Py_INCREF(Py_None); - return Py_None; + return NULL; } PyObject *obj = PyDict_New(); for (const_iterator i= multimap.begin(); i!= multimap.end(); ++i) {