diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-03-01 14:45:03 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-03-02 08:26:56 +0000 |
commit | 8ea1045330964d71211ac8e9580858b2b4aac5c7 (patch) | |
tree | f35f26c8b45d65c1ffb0dab202f1601bc79a5619 /generator | |
parent | 1066b1aedf2f502178b3e515683835973a249296 (diff) |
Generators: Exclude functions using rvalue references
Introduce a convenience function to check and use that in
the generators.
Task-number: PYSIDE-323
Change-Id: Iccd2907bb8f41d212087984a35a2b5efa7121546
Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'generator')
-rw-r--r-- | generator/shiboken2/cppgenerator.cpp | 5 | ||||
-rw-r--r-- | generator/shiboken2/shibokengenerator.cpp | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/generator/shiboken2/cppgenerator.cpp b/generator/shiboken2/cppgenerator.cpp index a76af30..512782b 100644 --- a/generator/shiboken2/cppgenerator.cpp +++ b/generator/shiboken2/cppgenerator.cpp @@ -148,8 +148,10 @@ QList<AbstractMetaFunctionList> CppGenerator::filterGroupedOperatorFunctions(con QMap<QPair<QString, int >, AbstractMetaFunctionList> results; const AbstractMetaClass::OperatorQueryOptions query(queryIn); foreach (AbstractMetaFunction* func, metaClass->operatorOverloads(query)) { - if (func->isModifiedRemoved() || func->name() == QLatin1String("operator[]") || func->name() == QLatin1String("operator->")) + if (func->isModifiedRemoved() || func->usesRValueReferences() + || func->name() == QLatin1String("operator[]") || func->name() == QLatin1String("operator->")) { continue; + } int args; if (func->isComparisonOperator()) { args = -1; @@ -324,6 +326,7 @@ void CppGenerator::generateClass(QTextStream &s, const AbstractMetaClass *metaCl AbstractMetaFunctionList overloads; foreach (AbstractMetaFunction* func, it.value()) { if (!func->isAssignmentOperator() + && !func->usesRValueReferences() && !func->isCastOperator() && !func->isModifiedRemoved() && (!func->isPrivate() || func->functionType() == AbstractMetaFunction::EmptyFunction) diff --git a/generator/shiboken2/shibokengenerator.cpp b/generator/shiboken2/shibokengenerator.cpp index 45401d3..7d851fd 100644 --- a/generator/shiboken2/shibokengenerator.cpp +++ b/generator/shiboken2/shibokengenerator.cpp @@ -1403,8 +1403,7 @@ AbstractMetaFunctionList ShibokenGenerator::filterFunctions(const AbstractMetaCl { AbstractMetaFunctionList result; foreach (AbstractMetaFunction *func, metaClass->functions()) { - //skip signals - if (func->isSignal() || func->isDestructor() + if (func->isSignal() || func->isDestructor() || func->usesRValueReferences() || (func->isModifiedRemoved() && !func->isAbstract() && (!avoidProtectedHack() || !func->isProtected()))) continue; |