aboutsummaryrefslogtreecommitdiffstats
path: root/generator
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2017-03-01 14:45:03 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2017-03-02 08:26:56 +0000
commit8ea1045330964d71211ac8e9580858b2b4aac5c7 (patch)
treef35f26c8b45d65c1ffb0dab202f1601bc79a5619 /generator
parent1066b1aedf2f502178b3e515683835973a249296 (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.cpp5
-rw-r--r--generator/shiboken2/shibokengenerator.cpp3
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;