diff options
author | Hugo Lima <hugo.lima@openbossa.org> | 2010-02-25 19:57:18 -0300 |
---|---|---|
committer | Hugo Lima <hugo.lima@openbossa.org> | 2010-02-26 14:28:20 -0300 |
commit | e0c08ae6c367335a1152107e1b1e23e59e1bc3a5 (patch) | |
tree | 99e0023c0eae416c493a6b1759ae6c080c8448dd /libshiboken | |
parent | e8483c6c8f28a8fda67443cdc4480ff4252c288d (diff) |
Do not get the pointer of SbkType<T> function, so the compiler doesn't need
to implement this function (inlining it when needed).
This safe amazings 8KiB from QtGui :-)
Diffstat (limited to 'libshiboken')
-rw-r--r-- | libshiboken/typeresolver.cpp | 8 | ||||
-rw-r--r-- | libshiboken/typeresolver.h | 6 |
2 files changed, 7 insertions, 7 deletions
diff --git a/libshiboken/typeresolver.cpp b/libshiboken/typeresolver.cpp index f4a95255c..ac4330926 100644 --- a/libshiboken/typeresolver.cpp +++ b/libshiboken/typeresolver.cpp @@ -48,7 +48,7 @@ struct TypeResolver::TypeResolverPrivate CppToPythonFunc cppToPython; PythonToCppFunc pythonToCpp; DeleteObjectFunc deleteObject; - GetPyTypeFunc getPyType; + PyTypeObject* pyType; }; static void deinitTypeResolver() @@ -76,14 +76,14 @@ static void registerTypeResolver(TypeResolver* resolver) typeResolverMap[resolver->typeName()] = resolver; } -TypeResolver::TypeResolver(const char* typeName, TypeResolver::CppToPythonFunc cppToPy, TypeResolver::PythonToCppFunc pyToCpp, GetPyTypeFunc getPyType, TypeResolver::DeleteObjectFunc deleter) +TypeResolver::TypeResolver(const char* typeName, TypeResolver::CppToPythonFunc cppToPy, TypeResolver::PythonToCppFunc pyToCpp, PyTypeObject* pyType, TypeResolver::DeleteObjectFunc deleter) { m_d = new TypeResolverPrivate; m_d->typeName = typeName; m_d->cppToPython = cppToPy; m_d->pythonToCpp = pyToCpp; m_d->deleteObject = deleter; - m_d->getPyType = getPyType; + m_d->pyType = pyType; registerTypeResolver(this); } @@ -127,5 +127,5 @@ void TypeResolver::deleteObject(void* object) PyTypeObject* TypeResolver::pythonType() { - return m_d->getPyType(); + return m_d->pyType; } diff --git a/libshiboken/typeresolver.h b/libshiboken/typeresolver.h index 4e7efb81b..0a23634c5 100644 --- a/libshiboken/typeresolver.h +++ b/libshiboken/typeresolver.h @@ -81,13 +81,13 @@ public: template<typename T> static TypeResolver* createValueTypeResolver(const char* typeName) { - return new TypeResolver(typeName, &Shiboken::Converter<T>::toPython, &pythonToValueType<T>, &SbkType<T>, &objectDeleter<T>); + return new TypeResolver(typeName, &Shiboken::Converter<T>::toPython, &pythonToValueType<T>, SbkType<T>(), &objectDeleter<T>); } template<typename T> static TypeResolver* createObjectTypeResolver(const char* typeName) { - return new TypeResolver(typeName, &objectTypeToPython<T>, &pythonToObjectType<T>, &SbkType<T>); + return new TypeResolver(typeName, &objectTypeToPython<T>, &pythonToObjectType<T>, SbkType<T>()); } static TypeResolver* get(const char* typeName); @@ -106,7 +106,7 @@ private: TypeResolver(const TypeResolver&); TypeResolver& operator=(const TypeResolver&); - TypeResolver(const char* typeName, CppToPythonFunc cppToPy, PythonToCppFunc pyToCpp, GetPyTypeFunc getPyType, DeleteObjectFunc deleter = 0); + TypeResolver(const char* typeName, CppToPythonFunc cppToPy, PythonToCppFunc pyToCpp, PyTypeObject* pyType, DeleteObjectFunc deleter = 0); }; } |