aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/generator/shiboken2/cppgenerator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken2/generator/shiboken2/cppgenerator.cpp')
-rw-r--r--sources/shiboken2/generator/shiboken2/cppgenerator.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/sources/shiboken2/generator/shiboken2/cppgenerator.cpp b/sources/shiboken2/generator/shiboken2/cppgenerator.cpp
index 0ffc7908d..c1f1b21db 100644
--- a/sources/shiboken2/generator/shiboken2/cppgenerator.cpp
+++ b/sources/shiboken2/generator/shiboken2/cppgenerator.cpp
@@ -5262,9 +5262,16 @@ void CppGenerator::writeClassRegister(QTextStream &s,
s << "0,\n";
}
- // 6:baseType
- const auto base = metaClass->isNamespace()
+ // 6:baseType: Find a type that is not disabled.
+ auto base = metaClass->isNamespace()
? metaClass->extendedNamespace() : metaClass->baseClass();
+ if (!metaClass->isNamespace()) {
+ for (; base != nullptr; base = base->baseClass()) {
+ const auto ct = base->typeEntry()->codeGeneration();
+ if (ct == TypeEntry::GenerateCode || ct == TypeEntry::GenerateForSubclass)
+ break;
+ }
+ }
if (base) {
s << INDENT << "reinterpret_cast<SbkObjectType *>("
<< cpythonTypeNameExt(base->typeEntry()) << "),\n";