aboutsummaryrefslogtreecommitdiffstats
path: root/shibokengenerator.cpp
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2009-10-23 13:27:33 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2009-10-23 13:27:33 -0300
commit869d3372b55f542d32f6f6220566507e7d8a2cb8 (patch)
tree6ae0e59217d33ca48aeeaf0b5bef6f05c2a2c4a9 /shibokengenerator.cpp
parent70ba8b2ea9fcad7a6f88938c1675b45dec320a31 (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.cpp33
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);