aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/libshiboken/helper.cpp
diff options
context:
space:
mode:
authorChristian Tismer <tismer@stackless.com>2017-09-28 13:10:28 +0200
committerChristian Tismer <tismer@stackless.com>2017-09-29 07:49:27 +0000
commitc7f9793ff660ed608474d0cab3b31054dbebb458 (patch)
tree3726b859a49071607f950e3f353ce9f086f57ff2 /sources/shiboken2/libshiboken/helper.cpp
parent828c94347125180468838c77b554e0526cd34aa5 (diff)
Fix the signature of the Q*Application constructor
Q*Application had PySequence as Parameter, although only QStringList is accepted. That resulted in an implausible error message when a list of, say, Integers was given. This patch - replaces PySequence by QStringList (one more tuple layer), - fixes QCoreApplication to give the same kind of error messages, - renames the shiboken function sequenceToArgcArgv to listToArgcArgv and changes it to only allow list descendents. We also changed signature.typing in one line to display List[str] correctly. I think this belongs more to PySide-331, a fixed qApp. Task-number: PYSIDE-510 Task-number: PYSIDE-331 Change-Id: Ib256c6a2db05a3db826454e1bf1b4729d59a240b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'sources/shiboken2/libshiboken/helper.cpp')
-rw-r--r--sources/shiboken2/libshiboken/helper.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/sources/shiboken2/libshiboken/helper.cpp b/sources/shiboken2/libshiboken/helper.cpp
index 2249bf45..5792db5b 100644
--- a/sources/shiboken2/libshiboken/helper.cpp
+++ b/sources/shiboken2/libshiboken/helper.cpp
@@ -43,9 +43,10 @@
namespace Shiboken
{
-bool sequenceToArgcArgv(PyObject* argList, int* argc, char*** argv, const char* defaultAppName)
+// PySide-510: Changed from PySequence to PyList, which is correct.
+bool listToArgcArgv(PyObject* argList, int* argc, char*** argv, const char* defaultAppName)
{
- if (!PySequence_Check(argList))
+ if (!PyList_Check(argList))
return false;
if (!defaultAppName)
@@ -55,7 +56,7 @@ bool sequenceToArgcArgv(PyObject* argList, int* argc, char*** argv, const char*
Shiboken::AutoDecRef args(PySequence_Fast(argList, 0));
int numArgs = int(PySequence_Fast_GET_SIZE(argList));
for (int i = 0; i < numArgs; ++i) {
- PyObject* item = PySequence_Fast_GET_ITEM(args.object(), i);
+ PyObject* item = PyList_GET_ITEM(args.object(), i);
if (!PyBytes_Check(item) && !PyUnicode_Check(item))
return false;
}
@@ -74,7 +75,7 @@ bool sequenceToArgcArgv(PyObject* argList, int* argc, char*** argv, const char*
(*argv)[0] = strdup(appName ? Shiboken::String::toCString(appName) : defaultAppName);
} else {
for (int i = 0; i < numArgs; ++i) {
- PyObject* item = PySequence_Fast_GET_ITEM(args.object(), i);
+ PyObject* item = PyList_GET_ITEM(args.object(), i);
char* string = 0;
if (Shiboken::String::check(item)) {
string = strdup(Shiboken::String::toCString(item));