diff options
author | aberent@chromium.org <aberent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-07 18:06:02 +0000 |
---|---|---|
committer | aberent@chromium.org <aberent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-07 18:06:02 +0000 |
commit | 307cbf25bf5ac87d913fea7617d5653293dcbe92 (patch) | |
tree | 12ca9f6b3726d2971b181d651eef7479393757a7 /base/prefs | |
parent | 1959c50c1bade879687830aaac5bbb7ac33481f1 (diff) | |
download | chromium_src-307cbf25bf5ac87d913fea7617d5653293dcbe92.zip chromium_src-307cbf25bf5ac87d913fea7617d5653293dcbe92.tar.gz chromium_src-307cbf25bf5ac87d913fea7617d5653293dcbe92.tar.bz2 |
Rewrite DefaultPrefStore for performance
Derive directly from PrefStore, and ignore observers
since they can't usefully observe anything. Also remove now redundant members
from ValueMapPrefStore.
BUG=158330
Review URL: https://chromiumcodereview.appspot.com/11358123
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166469 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/prefs')
-rw-r--r-- | base/prefs/default_pref_store.cc | 19 | ||||
-rw-r--r-- | base/prefs/default_pref_store.h | 15 | ||||
-rw-r--r-- | base/prefs/value_map_pref_store.cc | 16 | ||||
-rw-r--r-- | base/prefs/value_map_pref_store.h | 8 |
4 files changed, 30 insertions, 28 deletions
diff --git a/base/prefs/default_pref_store.cc b/base/prefs/default_pref_store.cc index c031221..eb14a50 100644 --- a/base/prefs/default_pref_store.cc +++ b/base/prefs/default_pref_store.cc @@ -3,19 +3,26 @@ // found in the LICENSE file. #include "base/prefs/default_pref_store.h" +#include "base/logging.h" using base::Value; DefaultPrefStore::DefaultPrefStore() {} +PrefStore::ReadResult DefaultPrefStore::GetValue( + const std::string& key, + const base::Value** result) const { + return prefs_.GetValue(key, result) ? READ_OK : READ_NO_VALUE; +} + void DefaultPrefStore::SetDefaultValue(const std::string& key, Value* value) { CHECK(GetValue(key, NULL) == READ_NO_VALUE); - SetValue(key, value); + prefs_.SetValue(key, value); } void DefaultPrefStore::RemoveDefaultValue(const std::string& key) { CHECK(GetValue(key, NULL) == READ_OK); - RemoveValue(key); + prefs_.RemoveValue(key); } base::Value::Type DefaultPrefStore::GetType(const std::string& key) const { @@ -23,4 +30,12 @@ base::Value::Type DefaultPrefStore::GetType(const std::string& key) const { return GetValue(key, &value) == READ_OK ? value->GetType() : Value::TYPE_NULL; } +DefaultPrefStore::const_iterator DefaultPrefStore::begin() const { + return prefs_.begin(); +} + +DefaultPrefStore::const_iterator DefaultPrefStore::end() const { + return prefs_.end(); +} + DefaultPrefStore::~DefaultPrefStore() {} diff --git a/base/prefs/default_pref_store.h b/base/prefs/default_pref_store.h index 3226cc2..e6fdbfa 100644 --- a/base/prefs/default_pref_store.h +++ b/base/prefs/default_pref_store.h @@ -8,15 +8,21 @@ #include <string> #include "base/prefs/base_prefs_export.h" -#include "base/prefs/value_map_pref_store.h" +#include "base/prefs/pref_store.h" +#include "base/prefs/pref_value_map.h" #include "base/values.h" // This PrefStore keeps track of default preference values set when a // preference is registered with the PrefService. -class BASE_PREFS_EXPORT DefaultPrefStore : public ValueMapPrefStore { +class BASE_PREFS_EXPORT DefaultPrefStore : public PrefStore { public: + typedef PrefValueMap::const_iterator const_iterator; + DefaultPrefStore(); + virtual ReadResult GetValue(const std::string& key, + const base::Value** result) const OVERRIDE; + // Stores a new |value| for |key|. Assumes ownership of |value|. void SetDefaultValue(const std::string& key, Value* value); @@ -27,10 +33,15 @@ class BASE_PREFS_EXPORT DefaultPrefStore : public ValueMapPrefStore { // has not been registered. base::Value::Type GetType(const std::string& key) const; + const_iterator begin() const; + const_iterator end() const; + protected: virtual ~DefaultPrefStore(); private: + PrefValueMap prefs_; + DISALLOW_COPY_AND_ASSIGN(DefaultPrefStore); }; diff --git a/base/prefs/value_map_pref_store.cc b/base/prefs/value_map_pref_store.cc index dc33384..f1eb440 100644 --- a/base/prefs/value_map_pref_store.cc +++ b/base/prefs/value_map_pref_store.cc @@ -28,22 +28,6 @@ size_t ValueMapPrefStore::NumberOfObservers() const { return observers_.size(); } -ValueMapPrefStore::iterator ValueMapPrefStore::begin() { - return prefs_.begin(); -} - -ValueMapPrefStore::iterator ValueMapPrefStore::end() { - return prefs_.end(); -} - -ValueMapPrefStore::const_iterator ValueMapPrefStore::begin() const { - return prefs_.begin(); -} - -ValueMapPrefStore::const_iterator ValueMapPrefStore::end() const { - return prefs_.end(); -} - ValueMapPrefStore::~ValueMapPrefStore() {} void ValueMapPrefStore::SetValue(const std::string& key, Value* value) { diff --git a/base/prefs/value_map_pref_store.h b/base/prefs/value_map_pref_store.h index b8a34ae..dc79939 100644 --- a/base/prefs/value_map_pref_store.h +++ b/base/prefs/value_map_pref_store.h @@ -18,9 +18,6 @@ // storing the preference values. class BASE_PREFS_EXPORT ValueMapPrefStore : public PrefStore { public: - typedef std::map<std::string, base::Value*>::iterator iterator; - typedef std::map<std::string, base::Value*>::const_iterator const_iterator; - ValueMapPrefStore(); // PrefStore overrides: @@ -30,11 +27,6 @@ class BASE_PREFS_EXPORT ValueMapPrefStore : public PrefStore { virtual void RemoveObserver(PrefStore::Observer* observer) OVERRIDE; virtual size_t NumberOfObservers() const OVERRIDE; - iterator begin(); - iterator end(); - const_iterator begin() const; - const_iterator end() const; - protected: virtual ~ValueMapPrefStore(); |