summaryrefslogtreecommitdiffstats
path: root/qmake/generators
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2021-11-22 08:42:49 +0100
committerMarc Mutz <marc.mutz@qt.io>2021-11-24 10:47:10 +0100
commit5750a9728e5ab095317e3d7faae0d54cff58a6da (patch)
treea854fe038b8dac36f09d4f2ff23cdf8a40b9de73 /qmake/generators
parenta756a9aa8b190db6bd6825e6fe8b8bb6c3691e88 (diff)
qmake: don't use magic numbers
Use a local enum to enumerate the different "interesting" keywords. Task-number: QTBUG-55458 Change-Id: I30a6336072d3184b720d8c016f199572dba87a81 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'qmake/generators')
-rw-r--r--qmake/generators/makefiledeps.cpp22
1 files changed, 15 insertions, 7 deletions
diff --git a/qmake/generators/makefiledeps.cpp b/qmake/generators/makefiledeps.cpp
index f1b1e4b216..2583fba627 100644
--- a/qmake/generators/makefiledeps.cpp
+++ b/qmake/generators/makefiledeps.cpp
@@ -924,8 +924,15 @@ bool QMakeSourceFileInfo::findMocs(SourceFile *file)
debug_msg(2, "findMocs: %s", file->file.local().toLatin1().constData());
int line_count = 1;
- // [0] for Q_OBJECT, [1] for Q_GADGET, [2] for Q_NAMESPACE, [3] for Q_NAMESPACE_EXPORT
- bool ignore[4] = { false, false, false, false };
+ enum Keywords {
+ Q_OBJECT_Keyword,
+ Q_GADGET_Keyword,
+ Q_NAMESPACE_Keyword,
+ Q_NAMESPACE_EXPORT_Keyword,
+
+ NumKeywords
+ };
+ bool ignore[NumKeywords] = {};
/* qmake ignore Q_GADGET */
/* qmake ignore Q_OBJECT */
/* qmake ignore Q_NAMESPACE */
@@ -955,25 +962,25 @@ bool QMakeSourceFileInfo::findMocs(SourceFile *file)
debug_msg(2, "Mocgen: %s:%d Found \"qmake ignore Q_OBJECT\"",
file->file.real().toLatin1().constData(), line_count);
x += 20;
- ignore[0] = true;
+ ignore[Q_OBJECT_Keyword] = true;
} else if(buffer_len >= (x + 20) &&
!strncmp(buffer + x + 1, "make ignore Q_GADGET", 20)) {
debug_msg(2, "Mocgen: %s:%d Found \"qmake ignore Q_GADGET\"",
file->file.real().toLatin1().constData(), line_count);
x += 20;
- ignore[1] = true;
+ ignore[Q_GADGET_Keyword] = true;
} else if (buffer_len >= (x + 23) &&
!strncmp(buffer + x + 1, "make ignore Q_NAMESPACE", 23)) {
debug_msg(2, "Mocgen: %s:%d Found \"qmake ignore Q_NAMESPACE\"",
file->file.real().toLatin1().constData(), line_count);
x += 23;
- ignore[2] = true;
+ ignore[Q_NAMESPACE_Keyword] = true;
} else if (buffer_len >= (x + 30) &&
!strncmp(buffer + x + 1, "make ignore Q_NAMESPACE_EXPORT", 30)) {
debug_msg(2, "Mocgen: %s:%d Found \"qmake ignore Q_NAMESPACE_EXPORT\"",
file->file.real().toLatin1().constData(), line_count);
x += 30;
- ignore[3] = true;
+ ignore[Q_NAMESPACE_EXPORT_Keyword] = true;
}
} else if (buffer[x] == '*') {
extralines = 0;
@@ -1002,7 +1009,8 @@ bool QMakeSourceFileInfo::findMocs(SourceFile *file)
int y = skipEscapedLineEnds(buffer, buffer_len, x + 1, &morelines);
if (buffer[y] == 'Q') {
static const char interesting[][19] = { "Q_OBJECT", "Q_GADGET", "Q_NAMESPACE", "Q_NAMESPACE_EXPORT" };
- for (int interest = 0; interest < 4; ++interest) {
+ static_assert(std::size(interesting) == NumKeywords);
+ for (int interest = 0; interest < NumKeywords; ++interest) {
if (ignore[interest])
continue;