diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-12-01 13:47:31 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-12-02 20:03:31 +0000 |
commit | dda4d53d8b9bdc2a18e8f3f295bd9c887c8742e0 (patch) | |
tree | eae9f77c29dfdbd71195879324a393da87a98c9a /sources/shiboken2 | |
parent | 90811af4ea1a58f30f99af9ff7ba61144f2f5733 (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.cpp | 8 | ||||
-rw-r--r-- | sources/shiboken2/generator/shiboken2/headergenerator.cpp | 3 |
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()) { |