diff options
author | Konstantin Ritt <ritt.ks@gmail.com> | 2015-04-20 12:07:18 +0400 |
---|---|---|
committer | Konstantin Ritt <ritt.ks@gmail.com> | 2015-04-23 01:48:02 +0000 |
commit | a6fa9189b0698091fd70674aeafb853d4405da5c (patch) | |
tree | a696bc566d2c735f70044ef095a8a0ab118f4d91 /src/imports | |
parent | fb9a3d8dc60848b6ef16e74f721554040f32b249 (diff) |
[labs.settings] Minor optimization
Prefer clear() over subsequent erase() and remove duplicated check.
Change-Id: Ibc70c665972e2f972763e7a0088263815792a997
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'src/imports')
-rw-r--r-- | src/imports/settings/qqmlsettings.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/imports/settings/qqmlsettings.cpp b/src/imports/settings/qqmlsettings.cpp index e51d6bb148..954161b60b 100644 --- a/src/imports/settings/qqmlsettings.cpp +++ b/src/imports/settings/qqmlsettings.cpp @@ -315,14 +315,15 @@ void QQmlSettingsPrivate::load() void QQmlSettingsPrivate::store() { - QHash<const char *, QVariant>::iterator it = changedProperties.begin(); - while (it != changedProperties.end()) { + QHash<const char *, QVariant>::const_iterator it = changedProperties.constBegin(); + while (it != changedProperties.constEnd()) { instance()->setValue(it.key(), it.value()); #ifdef SETTINGS_DEBUG qDebug() << "QQmlSettings: store" << it.key() << ":" << it.value(); #endif - it = changedProperties.erase(it); + ++it; } + changedProperties.clear(); } void QQmlSettingsPrivate::_q_propertyChanged() @@ -394,12 +395,10 @@ void QQmlSettings::timerEvent(QTimerEvent *event) { Q_D(QQmlSettings); if (event->timerId() == d->timerId) { - if (d->changedProperties.isEmpty()) { - killTimer(d->timerId); - d->timerId = 0; - } else { - d->store(); - } + killTimer(d->timerId); + d->timerId = 0; + + d->store(); } QObject::timerEvent(event); } |