diff options
author | renatofilho <renato.filho@openbossa.org> | 2010-09-29 11:02:40 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:07:19 -0300 |
commit | 822bd79f87ad237b9e24b53f9048308200f06859 (patch) | |
tree | 17cb35ed6e334396725edb75c18ce750c85b7986 /libshiboken/bindingmanager.cpp | |
parent | 1f1fc9f504285c916785dd9daec557e24b332135 (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.cpp | 16 |
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) { |