diff options
Diffstat (limited to 'sources/shiboken2')
-rw-r--r-- | sources/shiboken2/libshiboken/helper.cpp | 9 | ||||
-rw-r--r-- | sources/shiboken2/libshiboken/helper.h | 2 | ||||
-rw-r--r-- | sources/shiboken2/tests/samplebinding/typesystem_sample.xml | 6 |
3 files changed, 9 insertions, 8 deletions
diff --git a/sources/shiboken2/libshiboken/helper.cpp b/sources/shiboken2/libshiboken/helper.cpp index 2249bf458..5792db5be 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)); diff --git a/sources/shiboken2/libshiboken/helper.h b/sources/shiboken2/libshiboken/helper.h index f2061b667..33d97c62c 100644 --- a/sources/shiboken2/libshiboken/helper.h +++ b/sources/shiboken2/libshiboken/helper.h @@ -101,7 +101,7 @@ inline PyObject* makeTuple(const A& a, const B& b, const C& c, const D& d, const * \note The argv array is allocated using new operator and each item is allocated using malloc. * \returns True on sucess, false otherwise. */ -LIBSHIBOKEN_API bool sequenceToArgcArgv(PyObject* argList, int* argc, char*** argv, const char* defaultAppName = 0); +LIBSHIBOKEN_API bool listToArgcArgv(PyObject* argList, int* argc, char*** argv, const char* defaultAppName = 0); /** * Convert a python sequence into a heap-allocated array of ints. diff --git a/sources/shiboken2/tests/samplebinding/typesystem_sample.xml b/sources/shiboken2/tests/samplebinding/typesystem_sample.xml index 089f835fc..65f989e7e 100644 --- a/sources/shiboken2/tests/samplebinding/typesystem_sample.xml +++ b/sources/shiboken2/tests/samplebinding/typesystem_sample.xml @@ -1687,7 +1687,7 @@ <inject-code class="target" position="beginning"> int argc; char** argv; - if (!Shiboken::sequenceToArgcArgv(%PYARG_1, &argc, &argv)) { + if (!Shiboken::listToArgcArgv(%PYARG_1, &argc, &argv)) { PyErr_SetString(PyExc_TypeError, "error"); return 0; } @@ -1710,7 +1710,7 @@ <inject-code class="target" position="beginning"> int argc; char** argv; - if (!Shiboken::sequenceToArgcArgv(%PYARG_1, &argc, &argv)) { + if (!Shiboken::listToArgcArgv(%PYARG_1, &argc, &argv)) { PyErr_SetString(PyExc_TypeError, "error"); return 0; } @@ -2402,7 +2402,7 @@ <value-type name="ValueAndVirtual" /> <object-type name="ObjectTypeByValue" /> - + <object-type name="TemplatePtr"> <modify-function signature="dummy(std::list<std::pair<BlackBox *, BlackBox *> > &)" rename="dummy_method" /> </object-type> |