diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2010-01-04 11:20:36 -0300 |
---|---|---|
committer | Marcelo Lira <marcelo.lira@openbossa.org> | 2010-01-04 11:28:52 -0300 |
commit | 56f308aa8aa2b188a9d18dd54a084ea76cfed90e (patch) | |
tree | b8904dc9bb826f4e4bdf0db86cbd106fa7ee3080 /shibokengenerator.cpp | |
parent | adc8e9f427160d20fe85d1f222a26d696c3b4479 (diff) |
Improved template variables to deal with custom types.
When template variable representing a C++ argument (%#) is represents
a custom type it is replaced by the Python argument (%PYARG_#), since
custom types are not converted to C++.
Reviewed by Renato Araújo <renato.filho@openbossa.org>
Diffstat (limited to 'shibokengenerator.cpp')
-rw-r--r-- | shibokengenerator.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/shibokengenerator.cpp b/shibokengenerator.cpp index 933aca5fa..b0b2aacca 100644 --- a/shibokengenerator.cpp +++ b/shibokengenerator.cpp @@ -939,9 +939,13 @@ void ShibokenGenerator::writeCodeSnips(QTextStream& s, } if (argReplacement.isEmpty()) { - argReplacement = QString("cpp_arg%1").arg(i - removed); - if (shouldDereferenceArgumentPointer(arg)) - argReplacement.prepend("(*").append(')'); + if (arg->type()->typeEntry()->isCustom()) { + argReplacement = usePyArgs ? QString("pyargs[%1]").arg(i - removed) : "arg"; + } else { + argReplacement = QString("cpp_arg%1").arg(i - removed); + if (shouldDereferenceArgumentPointer(arg)) + argReplacement.prepend("(*").append(')'); + } } } else { argReplacement = arg->argumentName(); |