summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/tools/moc/generator.cpp4
-rw-r--r--tests/auto/tools/moc/tst_moc.cpp2
2 files changed, 4 insertions, 2 deletions
diff --git a/src/tools/moc/generator.cpp b/src/tools/moc/generator.cpp
index e6ffbe157a..44eb4f65e8 100644
--- a/src/tools/moc/generator.cpp
+++ b/src/tools/moc/generator.cpp
@@ -172,12 +172,12 @@ bool Generator::registerableMetaType(const QByteArray &propertyType)
#undef STREAM_1ARG_TEMPLATE
;
foreach (const QByteArray &oneArgTemplateType, oneArgTemplates)
- if (propertyType.startsWith(oneArgTemplateType + "<") && !propertyType.endsWith("&")) {
+ if (propertyType.startsWith(oneArgTemplateType + "<") && propertyType.endsWith(">")) {
const int argumentSize = propertyType.size() - oneArgTemplateType.size() - 1
// The closing '>'
- 1
// templates inside templates have an extra whitespace char to strip.
- - (propertyType.at(propertyType.size() - 2) == '>' ? 1 : 0 );
+ - (propertyType.at(propertyType.size() - 2) == ' ' ? 1 : 0 );
const QByteArray templateArg = propertyType.mid(oneArgTemplateType.size() + 1, argumentSize);
return isBuiltinType(templateArg) || registerableMetaType(templateArg);
}
diff --git a/tests/auto/tools/moc/tst_moc.cpp b/tests/auto/tools/moc/tst_moc.cpp
index 923275d928..3459bede85 100644
--- a/tests/auto/tools/moc/tst_moc.cpp
+++ b/tests/auto/tools/moc/tst_moc.cpp
@@ -325,6 +325,8 @@ public slots:
signals:
void signalWithArray(const double[3]);
void signalWithNamedArray(const double namedArray[3]);
+ void signalWithIterator(QList<QUrl>::iterator);
+ void signalWithListPointer(QList<QUrl>*); //QTBUG-31002
private slots:
// for tst_Moc::preprocessorConditionals