From 93195356a90f300ab0e2d9a8b76fe7130fe5f256 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 9 Mar 2011 11:40:10 +0100 Subject: [PATCH] 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 --- src/plugins/coreplugin/mimedatabase.cpp | 8 +++----- 1 file 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; -- 2.11.0