aboutsummaryrefslogtreecommitdiffstats
path: root/shibokengenerator.cpp
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2010-01-04 11:20:36 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2010-01-04 11:28:52 -0300
commit56f308aa8aa2b188a9d18dd54a084ea76cfed90e (patch)
treeb8904dc9bb826f4e4bdf0db86cbd106fa7ee3080 /shibokengenerator.cpp
parentadc8e9f427160d20fe85d1f222a26d696c3b4479 (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.cpp10
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();