diff options
author | Milian Wolff <milian.wolff@kdab.com> | 2015-05-30 23:12:44 +0200 |
---|---|---|
committer | Milian Wolff <milian.wolff@kdab.com> | 2015-07-10 12:42:59 +0000 |
commit | a576ef4c3d06d54eab8e4e7fbb89b7a00df6eba6 (patch) | |
tree | 5f02b54557ffba492725c09ffc5b6cb1d2342c9b /src/tools/moc | |
parent | 58f0b6b5a84f93e74ff99bb9481c9142bda32270 (diff) |
Optimize moc: Implement fast operator== for Symbols.
Previously, this allocated temporary QByteArrays in the frequent
QVector<Symbols>::indexOf calls (macro.arguments.indexOf(s)).
Now, the we reuse the fast SubArray::operator== implementation.
Change-Id: Idbc6e3cf5fd353e8e36d51ba88d31e4c3bfd121d
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'src/tools/moc')
-rw-r--r-- | src/tools/moc/symbols.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/tools/moc/symbols.h b/src/tools/moc/symbols.h index 13f9ada606..0368a75793 100644 --- a/src/tools/moc/symbols.h +++ b/src/tools/moc/symbols.h @@ -113,8 +113,11 @@ struct Symbol Token token; inline QByteArray lexem() const { return lex.mid(from, len); } inline QByteArray unquotedLexem() const { return lex.mid(from+1, len-2); } - inline operator QByteArray() const { return lex.mid(from, len); } inline operator SubArray() const { return SubArray(lex, from, len); } + bool operator==(const Symbol& o) const + { + return SubArray(lex, from, len) == SubArray(o.lex, o.from, o.len); + } QByteArray lex; int from, len; |