aboutsummaryrefslogtreecommitdiffstats
path: root/libshiboken/typeresolver.cpp
diff options
context:
space:
mode:
authorHugo Parente Lima <hugo.lima@openbossa.org>2010-06-09 16:43:24 -0300
committerHugo Parente Lima <hugo.lima@openbossa.org>2010-06-10 15:33:42 -0300
commitd1ec4ab5b10d8d2ef125af08bccf467076791815 (patch)
tree7205e406a614cb4d9c38e93e3a180ae0e4e40c58 /libshiboken/typeresolver.cpp
parent4e58a45ea523118bef5e746edb7383c799d65a27 (diff)
Automatically register all primitive types on TypeResover.
Reviewer: Renato Araújo <renato.araujo@openbossa.org> Luciano Wolf <luciano.wolf@openbossa.org>
Diffstat (limited to 'libshiboken/typeresolver.cpp')
-rw-r--r--libshiboken/typeresolver.cpp20
1 files changed, 8 insertions, 12 deletions
diff --git a/libshiboken/typeresolver.cpp b/libshiboken/typeresolver.cpp
index 72c6c8d4c..a88634a17 100644
--- a/libshiboken/typeresolver.cpp
+++ b/libshiboken/typeresolver.cpp
@@ -59,20 +59,16 @@ static void deinitTypeResolver()
typeResolverMap.clear();
}
+void Shiboken::initTypeResolver()
+{
+ assert(typeResolverMap.empty());
+ typeResolverMap.set_empty_key("");
+ typeResolverMap.set_deleted_key("?");
+ std::atexit(deinitTypeResolver);
+}
+
static void registerTypeResolver(TypeResolver* resolver)
{
- static bool initied = false;
- if (!initied) {
- assert(typeResolverMap.empty());
- typeResolverMap.set_empty_key("");
- typeResolverMap.set_deleted_key("?");
- initied = true;
- std::atexit(deinitTypeResolver);
- TypeResolver::createValueTypeResolver<double>("double");
- TypeResolver::createValueTypeResolver<float>("float");
- TypeResolver::createValueTypeResolver<bool>("bool");
- TypeResolver::createValueTypeResolver<int>("int");
- }
assert(typeResolverMap.find(resolver->typeName()) == typeResolverMap.end());
typeResolverMap[resolver->typeName()] = resolver;
}