aboutsummaryrefslogtreecommitdiffstats
path: root/libshiboken/bindingmanager.cpp
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2009-11-26 19:01:24 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2009-11-26 19:01:24 -0300
commitacad8ceeef196c725eeabe7cf2a042a91eecbee3 (patch)
tree9c2ed99fef28723d9c0803f8bddaada817323b3b /libshiboken/bindingmanager.cpp
parentf694fbbff8999bde36fcd161c3b3f369c7f3e6a1 (diff)
Added convenience method BindingManager::invalidateWrapper(const void*).
This new invalidateWrapper finds the Python wrapper for a C++ pointer and then invalidates it. Virtual destructors for C++ wrappers call the invalidateWrapper on the "this" pointer.
Diffstat (limited to 'libshiboken/bindingmanager.cpp')
-rw-r--r--libshiboken/bindingmanager.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/libshiboken/bindingmanager.cpp b/libshiboken/bindingmanager.cpp
index c564a0c44..4774cb2d8 100644
--- a/libshiboken/bindingmanager.cpp
+++ b/libshiboken/bindingmanager.cpp
@@ -138,5 +138,12 @@ void BindingManager::invalidateWrapper(PyObject* wrapper)
releaseWrapper(wrapper);
}
+void BindingManager::invalidateWrapper(const void* cptr)
+{
+ WrapperMap::iterator iter = m_d->wrapperMapper.find(cptr);
+ if (iter != m_d->wrapperMapper.end())
+ invalidateWrapper(iter->second);
+}
+
} // namespace Shiboken