diff options
author | Hugo Parente Lima <hugo.pl@gmail.com> | 2010-10-21 18:13:21 -0200 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:07:23 -0300 |
commit | 03f1e7b4982fe8d8335b7b04f66825e49ff66531 (patch) | |
tree | 35651df402255af143f7e7bf9e8495381fd99211 /libshiboken/typeresolver.cpp | |
parent | 3c63ad23a0befc181be2db9655a4aa29f8b78168 (diff) |
Fix memory leak when someone tries to register a type already registered.
Reviewer: Luciano Wolf <luciano.wolf@openbossa.org>
Renato Araújo <renato.filho@openbossa.org>
Diffstat (limited to 'libshiboken/typeresolver.cpp')
-rw-r--r-- | libshiboken/typeresolver.cpp | 6 |
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) |