diff options
author | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2018-06-18 17:03:05 +0200 |
---|---|---|
committer | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2018-06-29 08:45:25 +0000 |
commit | d5e5e15c1c817cbfa5da8f80f6fa0e08b913e82e (patch) | |
tree | 4963ef2c1309f0d8e922a3231fad2d3fc472ba06 /src/tools | |
parent | ce6c4349f7faca167f09f910952de9798352484e (diff) |
Tracegen: code tidies
* Do not rely on the side-effect that QTextStream returns _null_ strings
(rather than empty strings) to signal EOF; just check for it,
making the code easier to read.
* Scope a variable properly
* Use the char-based functions, rather than string-based functions
(e.g. QString::split(QChar), not QString::split(QString)) when we're
actually passing just one character
* Make error cases more verbose
Change-Id: I415773a60ea1b9013193a9a77e52655a6459047d
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/tracegen/provider.cpp | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/src/tools/tracegen/provider.cpp b/src/tools/tracegen/provider.cpp index 9c26dbe72e..a6523a2e3d 100644 --- a/src/tools/tracegen/provider.cpp +++ b/src/tools/tracegen/provider.cpp @@ -272,35 +272,28 @@ Provider parseProvider(const QString &filename) static const QRegExp tracedef(QStringLiteral("([A-Za-z][A-Za-z0-9_]*)\\((.*)\\)")); - int lineNumber = 0; - Provider provider; provider.name = QFileInfo(filename).baseName(); - for (;;) { + for (int lineNumber = 1; !s.atEnd(); ++lineNumber) { QString line = s.readLine().trimmed(); - if (line.isNull()) - break; - - if (line.isEmpty() || line.startsWith(QStringLiteral("#"))) { - ++lineNumber; + if (line.isEmpty() || line.startsWith(QLatin1Char('#'))) continue; - } if (tracedef.exactMatch(line)) { const QString name = tracedef.cap(1); - QStringList args = tracedef.cap(2).split(QStringLiteral(","), QString::SkipEmptyParts); - - if (args.at(0).isNull()) - args.clear(); + const QString argsString = tracedef.cap(2); + const QStringList args = argsString.split(QLatin1Char(','), + QString::SkipEmptyParts); provider.tracepoints << parseTracepoint(name, args, filename, lineNumber); } else { - panic("Syntax error whilre processing %s on line %d", qPrintable(filename), lineNumber); + panic("Syntax error while processing '%s' line %d:\n" + " '%s' does not look like a tracepoint definition", + qPrintable(filename), lineNumber, + qPrintable(line)); } - - ++lineNumber; } #ifdef TRACEGEN_DEBUG |