aboutsummaryrefslogtreecommitdiffstats
path: root/shibokengenerator.cpp
diff options
context:
space:
mode:
authorLuciano Wolf <luciano.wolf@openbossa.org>2010-07-13 14:12:51 -0300
committerLuciano Wolf <luciano.wolf@openbossa.org>2010-07-13 16:17:25 -0300
commit29ca2a7c419ce854779d77091eb22c6bae8c4516 (patch)
tree467b58570dbe72a9a88b43b9a7f5dbdee6ede83a /shibokengenerator.cpp
parent1b1ff6303514314c199d070b9453d5dc80a21d87 (diff)
Enable support for NativePointer type (eg.: void *, QChar *, etc)
Reviewer: Renato Araújo <renato.filho@openbossa.org> Marcelo Lira <marcelo.lira@openbossa.org>
Diffstat (limited to 'shibokengenerator.cpp')
-rw-r--r--shibokengenerator.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/shibokengenerator.cpp b/shibokengenerator.cpp
index 4c310804d..6c50e7d19 100644
--- a/shibokengenerator.cpp
+++ b/shibokengenerator.cpp
@@ -549,7 +549,7 @@ void ShibokenGenerator::writeToCppConversion(QTextStream& s, const AbstractMetaT
QString ShibokenGenerator::getFormatUnitString(const AbstractMetaFunction* func, bool incRef) const
{
QString result;
- const char objType = (incRef ? 'O' : 'S');
+ const char objType = (incRef ? 'O' : 'N');
foreach (const AbstractMetaArgument* arg, func->arguments()) {
if (func->argumentRemoved(arg->argumentIndex() + 1))
continue;
@@ -560,6 +560,7 @@ QString ShibokenGenerator::getFormatUnitString(const AbstractMetaFunction* func,
|| arg->type()->isObject()
|| arg->type()->isValue()
|| arg->type()->isValuePointer()
+ || arg->type()->isNativePointer()
|| arg->type()->isEnum()
|| arg->type()->isFlags()
|| arg->type()->isContainer()
@@ -576,7 +577,12 @@ QString ShibokenGenerator::getFormatUnitString(const AbstractMetaFunction* func,
} else if (isCString(arg->type())) {
result += 'z';
} else {
- ReportHandler::warning("Unknown type used in ShibokenGenerator::getFormatUnitString!");
+ QString report;
+ QTextStream(&report) << "Method: " << func->ownerClass()->qualifiedCppName()
+ << "::" << func->signature() << " => Arg:"
+ << arg->name() << "index: " << arg->argumentIndex()
+ << " - cannot be handled properly. Use an inject-code to fix it!";
+ ReportHandler::warning(report);
result += '?';
}
}