aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2017-12-01 13:47:31 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2017-12-02 20:03:31 +0000
commitdda4d53d8b9bdc2a18e8f3f295bd9c887c8742e0 (patch)
treeeae9f77c29dfdbd71195879324a393da87a98c9a /sources/shiboken2
parent90811af4ea1a58f30f99af9ff7ba61144f2f5733 (diff)
shiboken: Do not generate wrapper methods for final C++ methods
This will result in a compilation error (overriding final method). Final methods appear in Qt3DInput::QMouse/QKeyboardDevice. Task-number: PYSIDE-487 Change-Id: I6eb300c91327c587b6bfe530fdafb519817171c4 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken2')
-rw-r--r--sources/shiboken2/generator/shiboken2/cppgenerator.cpp8
-rw-r--r--sources/shiboken2/generator/shiboken2/headergenerator.cpp3
2 files changed, 7 insertions, 4 deletions
diff --git a/sources/shiboken2/generator/shiboken2/cppgenerator.cpp b/sources/shiboken2/generator/shiboken2/cppgenerator.cpp
index cb650dde3..35d896333 100644
--- a/sources/shiboken2/generator/shiboken2/cppgenerator.cpp
+++ b/sources/shiboken2/generator/shiboken2/cppgenerator.cpp
@@ -344,11 +344,13 @@ void CppGenerator::generateClass(QTextStream &s, GeneratorContext &classContext)
if ((func->isPrivate() && !visibilityModifiedToPrivate(func))
|| (func->isModifiedRemoved() && !func->isAbstract()))
continue;
- if (func->functionType() == AbstractMetaFunction::ConstructorFunction && !func->isUserAdded())
+ if (func->functionType() == AbstractMetaFunction::ConstructorFunction && !func->isUserAdded()) {
writeConstructorNative(s, func);
- else if ((!avoidProtectedHack() || !metaClass->hasPrivateDestructor())
- && (func->isVirtual() || func->isAbstract()))
+ } else if ((!avoidProtectedHack() || !metaClass->hasPrivateDestructor())
+ && ((func->isVirtual() || func->isAbstract())
+ && (func->attributes() & AbstractMetaAttributes::FinalCppMethod) == 0)) {
writeVirtualMethodNative(s, func);
+ }
}
if (!avoidProtectedHack() || !metaClass->hasPrivateDestructor()) {
diff --git a/sources/shiboken2/generator/shiboken2/headergenerator.cpp b/sources/shiboken2/generator/shiboken2/headergenerator.cpp
index a41139381..e9bdacaf6 100644
--- a/sources/shiboken2/generator/shiboken2/headergenerator.cpp
+++ b/sources/shiboken2/generator/shiboken2/headergenerator.cpp
@@ -143,7 +143,8 @@ void HeaderGenerator::generateClass(QTextStream &s, GeneratorContext &classConte
for (AbstractMetaFunction *func : funcs) {
if (func->isVirtual())
hasVirtualFunction = true;
- writeFunction(s, func);
+ if ((func->attributes() & AbstractMetaAttributes::FinalCppMethod) == 0)
+ writeFunction(s, func);
}
if (avoidProtectedHack() && metaClass->hasProtectedFields()) {