From 4ff58f93db3e78d6d309f2648c3dd3152fe63168 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 5 Oct 2020 09:52:47 +0200 Subject: Optimize WebEngineSettings::testAttribute Do not look up fallback values before they are needed. Change-Id: I8bb21e261e8d218c658ac2a08e3cdc30b2cea47d Reviewed-by: Michal Klocek --- src/core/web_engine_settings.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp index edd72a117..957fe2b7d 100644 --- a/src/core/web_engine_settings.cpp +++ b/src/core/web_engine_settings.cpp @@ -112,9 +112,8 @@ WebEngineSettings::~WebEngineSettings() if (parentSettings) parentSettings->childSettings.remove(this); // In QML the profile and its settings may be garbage collected before the page and its settings. - for (WebEngineSettings *settings : qAsConst(childSettings)) { - settings->parentSettings = 0; - } + for (WebEngineSettings *settings : qAsConst(childSettings)) + settings->parentSettings = nullptr; } void WebEngineSettings::overrideWebPreferences(content::WebContents *webContents, content::WebPreferences *prefs) @@ -141,11 +140,15 @@ void WebEngineSettings::setAttribute(WebEngineSettings::Attribute attr, bool on) bool WebEngineSettings::testAttribute(WebEngineSettings::Attribute attr) const { - if (!parentSettings) { - Q_ASSERT(s_defaultAttributes.contains(attr)); - return m_attributes.value(attr, s_defaultAttributes.value(attr)); - } - return m_attributes.value(attr, parentSettings->testAttribute(attr)); + auto it = m_attributes.constFind(attr); + if (it != m_attributes.constEnd()) + return *it; + + if (parentSettings) + return parentSettings->testAttribute(attr); + + Q_ASSERT(s_defaultAttributes.contains(attr)); + return s_defaultAttributes.value(attr); } bool WebEngineSettings::isAttributeExplicitlySet(Attribute attr) const -- cgit v1.2.3