From 8c0194f76355c5a0341d276d09c2e49462082901 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Sat, 11 Mar 2017 18:50:52 +0100 Subject: moc: put the QPrivateSignal argument in the arg array Even if it is normaly not used, templated code might still try to access it Task-number: QTBUG-59414 Change-Id: I9f7aadd714843059c8f89cdac48c60a3e2ca7294 Reviewed-by: Simon Hausmann --- src/tools/moc/generator.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'src/tools/moc') diff --git a/src/tools/moc/generator.cpp b/src/tools/moc/generator.cpp index 674398e783..db27067cf6 100644 --- a/src/tools/moc/generator.cpp +++ b/src/tools/moc/generator.cpp @@ -1483,10 +1483,7 @@ void Generator::generateSignal(FunctionDef *def,int index) } Q_ASSERT(!def->normalizedType.isEmpty()); - if (def->arguments.isEmpty() && def->normalizedType == "void") { - if (def->isPrivateSignal) - fprintf(out, "QPrivateSignal"); - + if (def->arguments.isEmpty() && def->normalizedType == "void" && !def->isPrivateSignal) { fprintf(out, ")%s\n{\n" " QMetaObject::activate(%s, &staticMetaObject, %d, nullptr);\n" "}\n", constQualifier, thisPtr.constData(), index); @@ -1503,7 +1500,7 @@ void Generator::generateSignal(FunctionDef *def,int index) if (def->isPrivateSignal) { if (!def->arguments.isEmpty()) fprintf(out, ", "); - fprintf(out, "QPrivateSignal"); + fprintf(out, "QPrivateSignal _t%d", offset++); } fprintf(out, ")%s\n{\n", constQualifier); @@ -1527,7 +1524,7 @@ void Generator::generateSignal(FunctionDef *def,int index) } int i; for (i = 1; i < offset; ++i) - if (def->arguments.at(i - 1).type.isVolatile) + if (i <= def->arguments.count() && def->arguments.at(i - 1).type.isVolatile) fprintf(out, ", const_cast(reinterpret_cast(&_t%d))", i); else fprintf(out, ", const_cast(reinterpret_cast(&_t%d))", i); -- cgit v1.2.3