From c2890587871dd425da146d0c60510119a809b869 Mon Sep 17 00:00:00 2001 From: Renato Filho Date: Mon, 6 Jun 2011 11:41:10 -0300 Subject: Fix overload decisor on rich-compare function. Fixes bug #292. Reviewer: Marcelo Lira Luciano Wolf --- generator/cppgenerator.cpp | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'generator') 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()) { -- cgit v1.2.3