diff --git a/libshiboken/bindingmanager.cpp b/libshiboken/bindingmanager.cpp index cb610000..011fac52 100644 --- a/libshiboken/bindingmanager.cpp +++ b/libshiboken/bindingmanager.cpp @@ -140,9 +140,7 @@ void BindingManager::BindingManagerPrivate::releaseWrapper(void* cptr) void BindingManager::BindingManagerPrivate::assignWrapper(SbkObject* wrapper, const void* cptr) { assert(cptr); - WrapperMap::iterator iter = wrapperMapper.find(cptr); - if (iter == wrapperMapper.end()) - wrapperMapper.insert(std::make_pair(cptr, wrapper)); + wrapperMapper[cptr] = wrapper; } BindingManager::BindingManager() diff --git a/shibokenmodule/typesystem_shiboken.xml b/shibokenmodule/typesystem_shiboken.xml index b3d20594..7228c519 100644 --- a/shibokenmodule/typesystem_shiboken.xml +++ b/shibokenmodule/typesystem_shiboken.xml @@ -4,6 +4,7 @@ + bool isValid = Shiboken::Object::isValid(%1, false); @@ -39,6 +40,15 @@ + + + %PYARG_0 = (PyObject*)Shiboken::BindingManager::instance().retrieveWrapper((void *)%1); + if(!%PYARG_0) { + PyErr_SetString(PyExc_ValueError, "No binding registered."); + } + + + if (Shiboken::Object::checkType(%1)) {