diff options
Diffstat (limited to 'src/tools/moc/generator.cpp')
-rw-r--r-- | src/tools/moc/generator.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/tools/moc/generator.cpp b/src/tools/moc/generator.cpp index 016ac97228..674398e783 100644 --- a/src/tools/moc/generator.cpp +++ b/src/tools/moc/generator.cpp @@ -918,8 +918,6 @@ void Generator::generateMetacall() fprintf(out, " _id = %s::qt_metacall(_c, _id, _a);\n", superClass.constData()); } - fprintf(out, " if (_id < 0)\n return _id;\n"); - fprintf(out, " "); bool needElse = false; QVector<FunctionDef> methodList; @@ -927,6 +925,15 @@ void Generator::generateMetacall() methodList += cdef->slotList; methodList += cdef->methodList; + // If there are no methods or properties, we will return _id anyway, so + // don't emit this comparison -- it is unnecessary, and it makes coverity + // unhappy. + if (methodList.size() || cdef->propertyList.size()) { + fprintf(out, " if (_id < 0)\n return _id;\n"); + } + + fprintf(out, " "); + if (methodList.size()) { needElse = true; fprintf(out, "if (_c == QMetaObject::InvokeMetaMethod) {\n"); |