summaryrefslogtreecommitdiff
path: root/src/plugins/coreplugin/mimedatabase.cpp
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2011-03-09 11:40:10 +0100
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>2011-03-09 22:24:13 +0100
commit93195356a90f300ab0e2d9a8b76fe7130fe5f256 (patch)
treeeb4a1d7e5a2bd7e135f84f3e45703ce458e9b573 /src/plugins/coreplugin/mimedatabase.cpp
parentf3d6cd9cd1dce9ce893ce3f58fbf997f30556ce7 (diff)
downloadqt-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.cpp8
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;