aboutsummaryrefslogtreecommitdiffstats
path: root/libshiboken/basewrapper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libshiboken/basewrapper.cpp')
-rw-r--r--libshiboken/basewrapper.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/libshiboken/basewrapper.cpp b/libshiboken/basewrapper.cpp
index 2eaff65cb..d36e00493 100644
--- a/libshiboken/basewrapper.cpp
+++ b/libshiboken/basewrapper.cpp
@@ -57,8 +57,14 @@ void setParent(PyObject* parent, PyObject* child)
if (!child || child == Py_None || child == parent)
return;
- bool parentIsNull = !parent || parent == Py_None;
+ //Recursive for sequence protocol
+ if (PySequence_Check(child)) {
+ for (int i = 0, max = PySequence_Size(child); i < max; ++i)
+ setParent(parent, PySequence_Fast_GET_ITEM(child, i));
+ return;
+ }
+ bool parentIsNull = !parent || parent == Py_None;
SbkBaseWrapper* parent_ = reinterpret_cast<SbkBaseWrapper*>(parent);
SbkBaseWrapper* child_ = reinterpret_cast<SbkBaseWrapper*>(child);
if (!child_->parentInfo)