From: <wsf...@us...> - 2008-01-22 23:34:02
|
Revision: 10217 http://swig.svn.sourceforge.net/swig/?rev=10217&view=rev Author: wsfulton Date: 2008-01-22 15:33:59 -0800 (Tue, 22 Jan 2008) Log Message: ----------- Restore containers accepting NULL pointers when used in overloaded methods - problem reported by Josh Cherry Modified Paths: -------------- trunk/Examples/test-suite/python/li_std_vector.i trunk/Examples/test-suite/python/li_std_vector_runme.py trunk/Lib/python/pycontainer.swg Modified: trunk/Examples/test-suite/python/li_std_vector.i =================================================================== --- trunk/Examples/test-suite/python/li_std_vector.i 2008-01-21 22:31:37 UTC (rev 10216) +++ trunk/Examples/test-suite/python/li_std_vector.i 2008-01-22 23:33:59 UTC (rev 10217) @@ -135,5 +135,7 @@ std::string overloaded1(std::vector<int> vi) { return "vector<int>"; } std::string overloaded2(std::vector<int> vi) { return "vector<int>"; } std::string overloaded2(std::vector<double> vi) { return "vector<double>"; } +std::string overloaded3(std::vector<int> *vi) { return "vector<int> *"; } +std::string overloaded3(int i) { return "int"; } %} Modified: trunk/Examples/test-suite/python/li_std_vector_runme.py =================================================================== --- trunk/Examples/test-suite/python/li_std_vector_runme.py 2008-01-21 22:31:37 UTC (rev 10216) +++ trunk/Examples/test-suite/python/li_std_vector_runme.py 2008-01-22 23:33:59 UTC (rev 10217) @@ -124,3 +124,12 @@ if overloaded2(dv) != "vector<double>": raise RuntimeError +if overloaded3(iv) != "vector<int> *": + raise RuntimeError + +if overloaded3(None) != "vector<int> *": + raise RuntimeError + +if overloaded3(100) != "int": + raise RuntimeError + Modified: trunk/Lib/python/pycontainer.swg =================================================================== --- trunk/Lib/python/pycontainer.swg 2008-01-21 22:31:37 UTC (rev 10216) +++ trunk/Lib/python/pycontainer.swg 2008-01-22 23:33:59 UTC (rev 10217) @@ -702,7 +702,7 @@ typedef T value_type; static int asptr(PyObject *obj, sequence **seq) { - if (SWIG_Python_GetSwigThis(obj)) { + if (obj == Py_None || SWIG_Python_GetSwigThis(obj)) { sequence *p; if (SWIG_ConvertPtr(obj,(void**)&p, swig::type_info<sequence>(),0) == SWIG_OK) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |