diff options
author | Renato Filho <renato.filho@openbossa.org> | 2011-06-06 11:41:10 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:15:25 -0300 |
commit | c2890587871dd425da146d0c60510119a809b869 (patch) | |
tree | d7aa064a9ca49210747c623e6b0aca0c8cc69bc6 /generator | |
parent | 7b419e9c5996dc3ffc72d2ae2a6d6f73f8954112 (diff) |
Fix overload decisor on rich-compare function.
Fixes bug #292.
Reviewer: Marcelo Lira <marcelo.lira@openbossa.org>
Luciano Wolf <luciano.wolf@openbossa.org>
Diffstat (limited to 'generator')
-rw-r--r-- | generator/cppgenerator.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/generator/cppgenerator.cpp b/generator/cppgenerator.cpp index efcba7c48..9e9c31ae9 100644 --- a/generator/cppgenerator.cpp +++ b/generator/cppgenerator.cpp @@ -3035,7 +3035,6 @@ void CppGenerator::writeRichCompareFunction(QTextStream& s, const AbstractMetaCl { Indentation indent(INDENT); foreach (AbstractMetaFunctionList overloads, cmpOverloads) { - OverloadData overloadData(overloads, this); const AbstractMetaFunction* rfunc = overloads[0]; QString operatorId = ShibokenGenerator::pythonRichCompareOperatorId(rfunc); @@ -3055,7 +3054,9 @@ void CppGenerator::writeRichCompareFunction(QTextStream& s, const AbstractMetaCl bool first = true; bool comparesWithSameType = false; - foreach (const AbstractMetaFunction* func, overloads) { + OverloadData overloadData(overloads, this); + foreach (OverloadData* data, overloadData.nextOverloadData()) { + const AbstractMetaFunction* func = data->referenceFunction(); if (func->isStatic()) continue; @@ -3088,13 +3089,7 @@ void CppGenerator::writeRichCompareFunction(QTextStream& s, const AbstractMetaCl { Indentation indent(INDENT); s << INDENT << "// " << func->signature() << endl; - s << INDENT; - s << translateTypeForWrapperMethod(type, 0, ExcludeReference | ExcludeConst); - if (type->isObject() || type->isQObject()) - s << '&'; - s << " cppArg0 = "; - writeToCppConversion(s, type, 0, "arg", ExcludeReference | ExcludeConst); - s << ';' << endl; + writeArgumentConversion(s, type, "cppArg0", "arg", metaClass); // If the function is user added, use the inject code if (func->isUserAdded()) { |