aboutsummaryrefslogtreecommitdiffstats
path: root/libshiboken/bindingmanager.cpp
diff options
context:
space:
mode:
authorRenato Araujo Oliveira Filho <renato.filho@openbossa.org>2010-12-14 15:19:37 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:12:49 -0300
commitcf6c0ca50f29c6e606b7c27fbceb8d1d6faf3f14 (patch)
tree44b60c3183824f448cc22110b7aafff52818339f /libshiboken/bindingmanager.cpp
parenta0fa4f1d94f86362e8adef0171c9f4dc966fa402 (diff)
Fix object destruction process to avoid pass a invalid object during the
__del__ function. Fix bug #505 Reviewer: Luciano Wolf <luciano.wolf@openbossa.org> Marcelo Lira <marcelo.lira@openbossa.org>
Diffstat (limited to 'libshiboken/bindingmanager.cpp')
-rw-r--r--libshiboken/bindingmanager.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/libshiboken/bindingmanager.cpp b/libshiboken/bindingmanager.cpp
index 2bcf2debe..68bfe4856 100644
--- a/libshiboken/bindingmanager.cpp
+++ b/libshiboken/bindingmanager.cpp
@@ -148,7 +148,7 @@ BindingManager::~BindingManager()
* the BindingManager is being destroyed the interpreter is alredy
* shutting down. */
while (!m_d->wrapperMapper.empty()) {
- Object::destroy(m_d->wrapperMapper.begin()->second);
+ Object::destroy(m_d->wrapperMapper.begin()->second, const_cast<void*>(m_d->wrapperMapper.begin()->first));
}
assert(m_d->wrapperMapper.size() == 0);
delete m_d;
@@ -204,6 +204,7 @@ void BindingManager::releaseWrapper(SbkObject* sbkObj)
}
}
}
+ sbkObj->d->validCppObject = false;
}
SbkObject* BindingManager::retrieveWrapper(const void* cptr)