diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2009-10-23 13:27:33 -0300 |
---|---|---|
committer | Marcelo Lira <marcelo.lira@openbossa.org> | 2009-10-23 13:27:33 -0300 |
commit | 869d3372b55f542d32f6f6220566507e7d8a2cb8 (patch) | |
tree | 6ae0e59217d33ca48aeeaf0b5bef6f05c2a2c4a9 /shibokengenerator.cpp | |
parent | 70ba8b2ea9fcad7a6f88938c1675b45dec320a31 (diff) |
Revert "modified the generator do deal with all value type conversions in"
This reverts commit 4213b0176ae9af91221dbe38e1dead10638ff054.
Diffstat (limited to 'shibokengenerator.cpp')
-rw-r--r-- | shibokengenerator.cpp | 33 |
1 files changed, 9 insertions, 24 deletions
diff --git a/shibokengenerator.cpp b/shibokengenerator.cpp index e5ca98900..721cbe877 100644 --- a/shibokengenerator.cpp +++ b/shibokengenerator.cpp @@ -223,6 +223,11 @@ QString ShibokenGenerator::getFunctionReturnType(const AbstractMetaFunction* fun return func->ownerClass()->qualifiedCppName() + '*'; return translateTypeForWrapperMethod(func->type(), func->implementingClass()); + + //TODO: check these lines + //QString modifiedReturnType = QString(func->typeReplaced(0)); + //return modifiedReturnType.isNull() ? + //translateType(func->type(), func->implementingClass()) : modifiedReturnType; } QString ShibokenGenerator::writeBaseConversion(QTextStream& s, const AbstractMetaType* type, @@ -270,24 +275,9 @@ void ShibokenGenerator::writeToPythonConversion(QTextStream& s, const AbstractMe void ShibokenGenerator::writeToCppConversion(QTextStream& s, const AbstractMetaType* type, const AbstractMetaClass* context, QString argumentName) { - QString typeName; - if (type->isPrimitive()) { - const PrimitiveTypeEntry* ptype = (const PrimitiveTypeEntry*) type->typeEntry(); - if (ptype->basicAliasedTypeEntry()) - ptype = ptype->basicAliasedTypeEntry(); - typeName = ptype->name(); - } else { - typeName = translateTypeForWrapperMethod(type, context); - } - - if (type->isObject() || type->isQObject()) { - if (typeName.startsWith("const ")) - typeName.remove(0, 6); - if (!typeName.endsWith('*')) - typeName.append('*'); - } - - s << "Shiboken::Converter< " << typeName << " >::"; + if (type->isValuePointer()) + s << '&'; + writeBaseConversion(s, type, context); s << "toCpp(" << argumentName << ')'; } @@ -831,10 +821,7 @@ void ShibokenGenerator::writeCodeSnips(QTextStream& s, for (int i = 0; i < func->arguments().size(); i++) { if (func->argumentRemoved(i+1)) removed++; - QString star; - if (func->arguments().at(i)->type()->isValue()) - star = QString('*'); - code.replace("%" + QString::number(i+1), QString(star + "cpp_arg%1").arg(i - removed)); + code.replace("%" + QString::number(i+1), QString("cpp_arg%1").arg(i - removed)); } // replace template variables for not removed arguments @@ -845,8 +832,6 @@ void ShibokenGenerator::writeCodeSnips(QTextStream& s, continue; if (i > 0) argumentNames += ", "; - if (arg->type()->isValue()) - argumentNames += '*'; argumentNames += QString("cpp_arg%1").arg(i++); } code.replace("%ARGUMENT_NAMES", argumentNames); |