aboutsummaryrefslogtreecommitdiffstats
path: root/shibokengenerator.cpp
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2009-11-15 23:40:18 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2009-11-18 09:22:50 -0300
commitd20e2dd6a0212b2d8a89cbdc9dc99faabb61bd0c (patch)
tree1a722b61cd7c988a00dd826a52dde7592a7bf94d /shibokengenerator.cpp
parent1081714f5275261420a74ac333a117fd2bbca0c4 (diff)
Classes that have multiple inheritance in some point of its ancestry
now receive the multiple inheritance information, the initialization function will be that of the first ancestor that have multiple inheritance. Example: class MDerived : public Base1, public Base2 clas SonOfMDerived : public MDerived MDerived defines the function PyMDerived_mi_init to register the multiple inheritance information, and SonOfMDerived just uses the ancestor function.
Diffstat (limited to 'shibokengenerator.cpp')
-rw-r--r--shibokengenerator.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/shibokengenerator.cpp b/shibokengenerator.cpp
index 52eaff163..3e6d6ff34 100644
--- a/shibokengenerator.cpp
+++ b/shibokengenerator.cpp
@@ -976,6 +976,14 @@ QStringList ShibokenGenerator::getBaseClasses(const AbstractMetaClass* metaClass
return baseClass;
}
+const AbstractMetaClass* ShibokenGenerator::getMultipleInheritingClass(const AbstractMetaClass* metaClass)
+{
+ if (!metaClass || metaClass->baseClassNames().isEmpty())
+ return 0;
+ if (metaClass->baseClassNames().size() > 1)
+ return metaClass;
+ return getMultipleInheritingClass(metaClass->baseClass());
+}
QString ShibokenGenerator::getApiExportMacro() const
{