diff options
author | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2011-03-09 11:40:10 +0100 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2011-03-09 22:24:13 +0100 |
commit | 93195356a90f300ab0e2d9a8b76fe7130fe5f256 (patch) | |
tree | eb4a1d7e5a2bd7e135f84f3e45703ce458e9b573 /src/plugins/coreplugin/mimedatabase.cpp | |
parent | f3d6cd9cd1dce9ce893ce3f58fbf997f30556ce7 (diff) | |
download | qt-creator-93195356a90f300ab0e2d9a8b76fe7130fe5f256.tar.gz |
mime type matching optimization
given that checking for a match is expensive and determining the
priority is cheap, it makes sense to match only if the priority is known
to be high enough.
Reviewed-by: Leandro Melo
Diffstat (limited to 'src/plugins/coreplugin/mimedatabase.cpp')
-rw-r--r-- | src/plugins/coreplugin/mimedatabase.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/plugins/coreplugin/mimedatabase.cpp b/src/plugins/coreplugin/mimedatabase.cpp index f185529152..50c9548b8a 100644 --- a/src/plugins/coreplugin/mimedatabase.cpp +++ b/src/plugins/coreplugin/mimedatabase.cpp @@ -724,11 +724,9 @@ unsigned MimeType::matchesData(const QByteArray &data) const unsigned priority = 0; if (!data.isEmpty()) { foreach (const IMagicMatcher::IMagicMatcherSharedPointer &matcher, m_d->magicMatchers) { - if (matcher->matches(data)) { - const unsigned magicPriority = matcher->priority(); - if (magicPriority > priority) - priority = magicPriority; - } + const unsigned magicPriority = matcher->priority(); + if (magicPriority > priority && matcher->matches(data)) + priority = magicPriority; } } return priority; |