From a576ef4c3d06d54eab8e4e7fbb89b7a00df6eba6 Mon Sep 17 00:00:00 2001 From: Milian Wolff Date: Sat, 30 May 2015 23:12:44 +0200 Subject: Optimize moc: Implement fast operator== for Symbols. Previously, this allocated temporary QByteArrays in the frequent QVector::indexOf calls (macro.arguments.indexOf(s)). Now, the we reuse the fast SubArray::operator== implementation. Change-Id: Idbc6e3cf5fd353e8e36d51ba88d31e4c3bfd121d Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/tools/moc/symbols.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/tools/moc/symbols.h') 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; -- cgit v1.2.3