diff options
author | Brett Stottlemyer <bstottle@ford.com> | 2016-12-03 18:58:59 -0500 |
---|---|---|
committer | Brett Stottlemyer <bstottle@ford.com> | 2016-12-05 16:51:08 +0000 |
commit | fc881f28987764e48237d648622e6227c2ad3237 (patch) | |
tree | c9a21f3ec6d7dcc6672fa627d7872ea0f1acf929 /tools | |
parent | 54f7f9b47e38700e847c3d16f2d8694799037d49 (diff) |
Fix SourceApi lookup
The coverity scan pointed to a bug in SourceApi where the intent was for
the static parameter checks (based on the static QObject::connect eval)
to return the list of argument types from the lookup. It didn't before,
now it does.
Updated repc so autogenerated code includes the same changes.
Coverity-Id: 172053
Coverity-Id: 172054
Coverity-Id: 172060
Change-Id: I8e5ef9df028d5895153cdb2a97636218f64fb618
Reviewed-by: Continuous Integration (KDAB) <build@kdab.com>
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/repc/repcodegenerator.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/tools/repc/repcodegenerator.cpp b/tools/repc/repcodegenerator.cpp index 49557b4..502b6bc 100644 --- a/tools/repc/repcodegenerator.cpp +++ b/tools/repc/repcodegenerator.cpp @@ -810,6 +810,9 @@ void RepCodeGenerator::generateSourceAPI(QTextStream &out, const ASTClass &astCl generateDeclarationsForEnums(out, astClass.enums, false); } out << QString::fromLatin1(" %1()").arg(className) << endl; + out << QStringLiteral(" : SourceApiMap()") << endl; + out << QStringLiteral(" , signalArgTypes{}") << endl; + out << QStringLiteral(" , methodArgTypes{}") << endl; out << QStringLiteral(" {") << endl; const int propCount = astClass.properties.count(); out << QString::fromLatin1(" _properties[0] = %1;").arg(propCount) << endl; @@ -836,12 +839,12 @@ void RepCodeGenerator::generateSourceAPI(QTextStream &out, const ASTClass &astCl out << QString::fromLatin1(" _signals[0] = %1;").arg(signalCount+changeSignals.size()) << endl; for (int i = 0; i < changedCount; ++i) out << QString::fromLatin1(" _signals[%1] = qtro_signal_index<ObjectType>(&ObjectType::%2, " - "static_cast<void (QObject::*)()>(0),signalArgCount+%4,signalArgTypes[%4]);") + "static_cast<void (QObject::*)()>(0),signalArgCount+%4,&signalArgTypes[%4]);") .arg(i+1).arg(changeSignals.at(i)).arg(i) << endl; for (int i = 0; i < signalCount; ++i) { const ASTFunction &sig = astClass.signalsList.at(i); out << QString::fromLatin1(" _signals[%1] = qtro_signal_index<ObjectType>(&ObjectType::%2, " - "static_cast<void (QObject::*)(%3)>(0),signalArgCount+%4,signalArgTypes[%4]);") + "static_cast<void (QObject::*)(%3)>(0),signalArgCount+%4,&signalArgTypes[%4]);") .arg(QString::number(changedCount+i+1), sig.name, sig.paramsAsString(ASTFunction::Normalized), QString::number(i)) << endl; } const int slotCount = astClass.slotsList.count(); @@ -849,7 +852,7 @@ void RepCodeGenerator::generateSourceAPI(QTextStream &out, const ASTClass &astCl for (int i = 0; i < slotCount; ++i) { const ASTFunction &slot = astClass.slotsList.at(i); out << QString::fromLatin1(" _methods[%1] = qtro_method_index<ObjectType>(&ObjectType::%2, " - "static_cast<void (QObject::*)(%3)>(0),\"%2(%3)\",methodArgCount+%4,methodArgTypes[%4]);") + "static_cast<void (QObject::*)(%3)>(0),\"%2(%3)\",methodArgCount+%4,&methodArgTypes[%4]);") .arg(QString::number(i+1), slot.name, slot.paramsAsString(ASTFunction::Normalized), QString::number(i)) << endl; } |