aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/libshiboken
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken2/libshiboken')
-rw-r--r--sources/shiboken2/libshiboken/basewrapper.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/sources/shiboken2/libshiboken/basewrapper.cpp b/sources/shiboken2/libshiboken/basewrapper.cpp
index fc208e520..d697d0732 100644
--- a/sources/shiboken2/libshiboken/basewrapper.cpp
+++ b/sources/shiboken2/libshiboken/basewrapper.cpp
@@ -838,13 +838,15 @@ Py_hash_t hash(PyObject* pyObj)
static void setSequenceOwnership(PyObject* pyObj, bool owner)
{
if (PySequence_Check(pyObj)) {
- std::list<SbkObject*> objs = splitPyObject(pyObj);
- std::list<SbkObject*>::const_iterator it = objs.begin();
- for(; it != objs.end(); ++it) {
- if (owner)
- getOwnership(*it);
- else
- releaseOwnership(*it);
+ Py_ssize_t size = PySequence_Size(pyObj);
+ if (size > 0) {
+ std::list<SbkObject*> objs = splitPyObject(pyObj);
+ for (auto it = objs.begin(), end = objs.end(); it != end; ++it) {
+ if (owner)
+ getOwnership(*it);
+ else
+ releaseOwnership(*it);
+ }
}
} else if (Object::checkType(pyObj)) {
if (owner)