diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2009-09-16 21:23:19 -0300 |
---|---|---|
committer | Marcelo Lira <marcelo.lira@openbossa.org> | 2009-09-16 21:23:19 -0300 |
commit | d54092a097fbd6b5dfb7d54b60eec4d1682d233d (patch) | |
tree | 06d8577273b9fee715c6d840acbb8b86574daf76 /shibokengenerator.cpp | |
parent | 3535a84296afc00eb6913fd1e55decea41b3f35f (diff) |
argument conversion now deals with pointers to Value Types
Diffstat (limited to 'shibokengenerator.cpp')
-rw-r--r-- | shibokengenerator.cpp | 13 |
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 << ')'; } |