From 658f6cbbb19ec9c2a2f8a0a0d703d8107ce9d722 Mon Sep 17 00:00:00 2001 From: Renato Filho Date: Fri, 5 Feb 2010 16:28:01 -0300 Subject: Shiboken::setParent also accepts list of children. Reviewed by Hugo Parente --- libshiboken/basewrapper.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'libshiboken') 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(parent); SbkBaseWrapper* child_ = reinterpret_cast(child); if (!child_->parentInfo) -- cgit v1.2.3