aboutsummaryrefslogtreecommitdiffstats
path: root/PySide/QtCore/qstring_conversions.h
diff options
context:
space:
mode:
authorHugo Lima <hugo.lima@openbossa.org>2009-11-04 15:18:20 -0200
committerHugo Lima <hugo.lima@openbossa.org>2009-11-04 15:18:20 -0200
commit86fa278e1c254db2595b9aa8036cf2b7407d5662 (patch)
treea2a066ae07328236616f6ae62689709fdd49fd0f /PySide/QtCore/qstring_conversions.h
parentd2cd71313d0c44eaffe4b38ab3f9ac6daa2c20cb (diff)
Speed up construction of QString's from python unicode strings.
Diffstat (limited to 'PySide/QtCore/qstring_conversions.h')
-rw-r--r--PySide/QtCore/qstring_conversions.h7
1 files changed, 2 insertions, 5 deletions
diff --git a/PySide/QtCore/qstring_conversions.h b/PySide/QtCore/qstring_conversions.h
index 33cf438df..3f2766a41 100644
--- a/PySide/QtCore/qstring_conversions.h
+++ b/PySide/QtCore/qstring_conversions.h
@@ -27,14 +27,11 @@ inline QString Converter< QString >::toCpp(PyObject* pyobj)
} else if (PyQLatin1String_Check(pyobj)) {
return QString(Converter< QLatin1String >::toCpp(pyobj));
} else if (PyUnicode_Check(pyobj)) {
-#if defined(Py_UNICODE_WIDE)
Py_UNICODE* unicode = PyUnicode_AS_UNICODE(pyobj);
+#if defined(Py_UNICODE_WIDE)
return QString::fromUcs4(unicode);
#else
- PyObject* str = PyUnicode_AsUTF8String(pyobj);
- QString result = QString::fromUtf8(PyString_AS_STRING(str));
- Py_DECREF(str);
- return result;
+ return QString::fromUtf16(unicode, PyUnicode_GET_SIZE(pyobj));
#endif
} else if (PyString_Check(pyobj))
return QString(Converter< char * >::toCpp(pyobj));