aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Examples/test-suite/li_std_wstring.i8
-rw-r--r--Examples/test-suite/python/li_std_wstring_runme.py6
-rw-r--r--Lib/python/pywstrings.swg4
3 files changed, 15 insertions, 3 deletions
diff --git a/Examples/test-suite/li_std_wstring.i b/Examples/test-suite/li_std_wstring.i
index c809e11ec..e0ecde53b 100644
--- a/Examples/test-suite/li_std_wstring.i
+++ b/Examples/test-suite/li_std_wstring.i
@@ -38,6 +38,14 @@ wchar_t* test_cvalue(wchar_t* x) {
}
+wchar_t* test_wchar_overload() {
+ return 0;
+}
+
+wchar_t* test_wchar_overload(wchar_t *x) {
+ return x;
+}
+
std::wstring test_value(std::wstring x) {
return x;
}
diff --git a/Examples/test-suite/python/li_std_wstring_runme.py b/Examples/test-suite/python/li_std_wstring_runme.py
index a2d419a0a..fecc527e0 100644
--- a/Examples/test-suite/python/li_std_wstring_runme.py
+++ b/Examples/test-suite/python/li_std_wstring_runme.py
@@ -13,6 +13,12 @@ if li_std_wstring.test_ccvalue(x) != x:
if li_std_wstring.test_cvalue(x) != x:
raise RuntimeError("bad string mapping")
+if li_std_wstring.test_wchar_overload(x) != x:
+ raise RuntimeError("bad string mapping")
+
+if li_std_wstring.test_wchar_overload("not unicode") != "not unicode":
+ raise RuntimeError("bad string mapping")
+
if li_std_wstring.test_value(x) != x:
print x, li_std_wstring.test_value(x)
raise RuntimeError("bad string mapping")
diff --git a/Lib/python/pywstrings.swg b/Lib/python/pywstrings.swg
index 619bdd555..864376b01 100644
--- a/Lib/python/pywstrings.swg
+++ b/Lib/python/pywstrings.swg
@@ -18,9 +18,7 @@ SWIG_AsWCharPtrAndSize(PyObject *obj, wchar_t **cptr, size_t *psize, int *alloc)
int isunicode = PyUnicode_Check(obj);
%#if PY_VERSION_HEX < 0x03000000
if (!isunicode && PyString_Check(obj)) {
- if (cptr) {
- obj = tmp = PyUnicode_FromObject(obj);
- }
+ obj = tmp = PyUnicode_FromObject(obj);
isunicode = 1;
}
%#endif