Tweak unicode --> string conversion helper so UnicodeDecodeError is
raised when appropriate instead ofg just catching everything and raising TypeError git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29886 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1911,12 +1911,18 @@ wxString* wxString_in_helper(PyObject* source) {
|
|||||||
if (PyString_Check(source))
|
if (PyString_Check(source))
|
||||||
Py_DECREF(uni);
|
Py_DECREF(uni);
|
||||||
#else
|
#else
|
||||||
char* tmpPtr; int tmpSize;
|
// Convert to a string object if it isn't already, then to wxString
|
||||||
if (PyString_AsStringAndSize(source, &tmpPtr, &tmpSize) == -1) {
|
PyObject* str = source;
|
||||||
PyErr_SetString(PyExc_TypeError, "Unable to convert string");
|
if (!PyString_Check(source)) {
|
||||||
return NULL;
|
str = PyObject_Str(source);
|
||||||
|
if (PyErr_Occurred()) return NULL;
|
||||||
}
|
}
|
||||||
|
char* tmpPtr; int tmpSize;
|
||||||
|
PyString_AsStringAndSize(str, &tmpPtr, &tmpSize);
|
||||||
target = new wxString(tmpPtr, tmpSize);
|
target = new wxString(tmpPtr, tmpSize);
|
||||||
|
|
||||||
|
if (!PyString_Check(source))
|
||||||
|
Py_DECREF(str);
|
||||||
#endif // wxUSE_UNICODE
|
#endif // wxUSE_UNICODE
|
||||||
|
|
||||||
return target;
|
return target;
|
||||||
|
Reference in New Issue
Block a user