Skip to content

Commit

Permalink
Tracegen: code tidies
Browse files Browse the repository at this point in the history
* 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 <[email protected]>
  • Loading branch information
dangelog committed Jun 29, 2018
1 parent ce6c434 commit d5e5e15
Showing 1 changed file with 9 additions and 16 deletions.
25 changes: 9 additions & 16 deletions src/tools/tracegen/provider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit d5e5e15

Please sign in to comment.