aboutsummaryrefslogtreecommitdiffstats
path: root/libshiboken/bindingmanager.cpp
diff options
context:
space:
mode:
authorrenatofilho <renato.filho@openbossa.org>2010-09-29 11:02:40 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:07:19 -0300
commit822bd79f87ad237b9e24b53f9048308200f06859 (patch)
tree17cb35ed6e334396725edb75c18ce750c85b7986 /libshiboken/bindingmanager.cpp
parent1f1fc9f504285c916785dd9daec557e24b332135 (diff)
Implement support to object list on ownserhsip functions.
Reviewer: Marcelo Lira <marcelo.lira@openbossa.org> Luciano Wolf <luciano.wolf@openbossa.org>
Diffstat (limited to 'libshiboken/bindingmanager.cpp')
-rw-r--r--libshiboken/bindingmanager.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/libshiboken/bindingmanager.cpp b/libshiboken/bindingmanager.cpp
index 47fd77d71..36a5abc72 100644
--- a/libshiboken/bindingmanager.cpp
+++ b/libshiboken/bindingmanager.cpp
@@ -245,6 +245,15 @@ PyObject* BindingManager::getOverride(const void* cptr, const char* methodName)
return 0;
}
+
+void BindingManager::invalidateWrapper(PyObject* pyobj)
+{
+ std::list<PyObject*> objs = splitPyObject(pyobj);
+ std::list<PyObject*>::const_iterator it;
+ for(it=objs.begin(); it != objs.end(); it++)
+ invalidateWrapper(reinterpret_cast<SbkBaseWrapper*>(*it));
+}
+
void BindingManager::invalidateWrapper(SbkBaseWrapper* wrapper)
{
if (!wrapper || ((PyObject*)wrapper == Py_None) || !SbkBaseWrapper_validCppObject(wrapper))
@@ -302,6 +311,13 @@ void BindingManager::destroyWrapper(SbkBaseWrapper* wrapper)
m_d->destroying = false;
}
+void BindingManager::transferOwnershipToCpp(PyObject* wrapper)
+{
+ std::list<PyObject*> objs = splitPyObject(wrapper);
+ std::list<PyObject*>::const_iterator it;
+ for(it=objs.begin(); it != objs.end(); it++)
+ transferOwnershipToCpp(reinterpret_cast<SbkBaseWrapper*>(*it));
+}
void BindingManager::transferOwnershipToCpp(SbkBaseWrapper* wrapper)
{