aboutsummaryrefslogtreecommitdiffstats
path: root/libshiboken
diff options
context:
space:
mode:
authorHugo Lima <hugo.lima@openbossa.org>2010-02-25 19:57:18 -0300
committerHugo Lima <hugo.lima@openbossa.org>2010-02-26 14:28:20 -0300
commite0c08ae6c367335a1152107e1b1e23e59e1bc3a5 (patch)
tree99e0023c0eae416c493a6b1759ae6c080c8448dd /libshiboken
parente8483c6c8f28a8fda67443cdc4480ff4252c288d (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.cpp8
-rw-r--r--libshiboken/typeresolver.h6
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);
};
}