diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-05 09:52:47 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-06 09:32:06 +0200 |
commit | 4ff58f93db3e78d6d309f2648c3dd3152fe63168 (patch) | |
tree | 331faf68bdbaee31dbd61cf2a75777b2fb0de8fb | |
parent | 3d80c914693e27dd118d4e07e2eda22713722c90 (diff) |
Optimize WebEngineSettings::testAttribute
Do not look up fallback values before they are needed.
Change-Id: I8bb21e261e8d218c658ac2a08e3cdc30b2cea47d
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
-rw-r--r-- | src/core/web_engine_settings.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
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 |