aboutsummaryrefslogtreecommitdiffstats
path: root/shibokengenerator.cpp
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2009-09-16 21:23:19 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2009-09-16 21:23:19 -0300
commitd54092a097fbd6b5dfb7d54b60eec4d1682d233d (patch)
tree06d8577273b9fee715c6d840acbb8b86574daf76 /shibokengenerator.cpp
parent3535a84296afc00eb6913fd1e55decea41b3f35f (diff)
argument conversion now deals with pointers to Value Types
Diffstat (limited to 'shibokengenerator.cpp')
-rw-r--r--shibokengenerator.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/shibokengenerator.cpp b/shibokengenerator.cpp
index 1b6feb127..0b481f317 100644
--- a/shibokengenerator.cpp
+++ b/shibokengenerator.cpp
@@ -248,7 +248,16 @@ QString ShibokenGenerator::writeBaseConversion(QTextStream& s, const AbstractMet
if ((type->isQObject() || type->isObject()) && typeName.startsWith("const "))
typeName.remove(0, 6);
- s << "Shiboken::Converter< " << typeName << " >::";
+ QString conversion = typeName;
+ if (type->isValuePointer()) {
+ // If the type is a pointer to a Value Type,
+ // remove the pointer symbol ('*')
+ conversion.chop(1);
+ // And the constness, if any
+ if (conversion.startsWith("const "))
+ conversion.remove(0, 6);
+ }
+ s << "Shiboken::Converter< " << conversion << " >::";
return typeName;
}
@@ -264,6 +273,8 @@ void ShibokenGenerator::writeToPythonConversion(QTextStream& s, const AbstractMe
void ShibokenGenerator::writeToCppConversion(QTextStream& s, const AbstractMetaType* type,
const AbstractMetaClass* context, QString argumentName)
{
+ if (type->isValuePointer())
+ s << '&';
writeBaseConversion(s, type, context);
s << "toCpp(" << argumentName << ')';
}