aboutsummaryrefslogtreecommitdiffstats
path: root/libshiboken/typeresolver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libshiboken/typeresolver.cpp')
-rw-r--r--libshiboken/typeresolver.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/libshiboken/typeresolver.cpp b/libshiboken/typeresolver.cpp
index d1439ef80..89bc63293 100644
--- a/libshiboken/typeresolver.cpp
+++ b/libshiboken/typeresolver.cpp
@@ -57,7 +57,11 @@ void Shiboken::initTypeResolver()
static void registerTypeResolver(TypeResolver* resolver)
{
- typeResolverMap[resolver->typeName()] = resolver;
+ TypeResolver*& v = typeResolverMap[resolver->typeName()];
+ if (!v)
+ v = resolver;
+ else
+ delete resolver; // Discard type resolvers already registered
}
TypeResolver::TypeResolver(const char* typeName, TypeResolver::CppToPythonFunc cppToPy, TypeResolver::PythonToCppFunc pyToCpp, PyTypeObject* pyType, TypeResolver::DeleteObjectFunc deleter)