| Index: components/prefs/pref_value_map.cc
|
| diff --git a/components/prefs/pref_value_map.cc b/components/prefs/pref_value_map.cc
|
| index c146918e238eff6e027c7dc65cf201d45005ed92..f0392d25284319b4a7b62340065d14c4d483f56d 100644
|
| --- a/components/prefs/pref_value_map.cc
|
| +++ b/components/prefs/pref_value_map.cc
|
| @@ -10,7 +10,6 @@
|
|
|
| #include "base/logging.h"
|
| #include "base/memory/ptr_util.h"
|
| -#include "base/stl_util.h"
|
| #include "base/values.h"
|
|
|
| PrefValueMap::PrefValueMap() {}
|
| @@ -19,7 +18,11 @@ PrefValueMap::~PrefValueMap() {}
|
|
|
| bool PrefValueMap::GetValue(const std::string& key,
|
| const base::Value** value) const {
|
| - const base::Value* got_value = prefs_.get(key);
|
| + auto it = prefs_.find(key);
|
| + if (it == prefs_.end())
|
| + return false;
|
| +
|
| + const base::Value* got_value = it->second.get();
|
| if (value && got_value)
|
| *value = got_value;
|
|
|
| @@ -27,7 +30,11 @@ bool PrefValueMap::GetValue(const std::string& key,
|
| }
|
|
|
| bool PrefValueMap::GetValue(const std::string& key, base::Value** value) {
|
| - base::Value* got_value = prefs_.get(key);
|
| + auto it = prefs_.find(key);
|
| + if (it == prefs_.end())
|
| + return false;
|
| +
|
| + base::Value* got_value = it->second.get();
|
| if (value && got_value)
|
| *value = got_value;
|
|
|
| @@ -38,11 +45,11 @@ bool PrefValueMap::SetValue(const std::string& key,
|
| std::unique_ptr<base::Value> value) {
|
| DCHECK(value);
|
|
|
| - base::Value* old_value = prefs_.get(key);
|
| - if (old_value && value->Equals(old_value))
|
| + std::unique_ptr<base::Value>& existing_value = prefs_[key];
|
| + if (existing_value && value->Equals(existing_value.get()))
|
| return false;
|
|
|
| - prefs_.set(key, std::move(value));
|
| + existing_value = std::move(value);
|
| return true;
|
| }
|
|
|
| @@ -118,13 +125,16 @@ void PrefValueMap::GetDifferingKeys(
|
| differing_keys->clear();
|
|
|
| // Put everything into ordered maps.
|
| - std::map<std::string, base::Value*> this_prefs(prefs_.begin(), prefs_.end());
|
| - std::map<std::string, base::Value*> other_prefs(other->prefs_.begin(),
|
| - other->prefs_.end());
|
| + std::map<std::string, base::Value*> this_prefs;
|
| + std::map<std::string, base::Value*> other_prefs;
|
| + for (const auto& pair : prefs_)
|
| + this_prefs[pair.first] = pair.second.get();
|
| + for (const auto& pair : other->prefs_)
|
| + other_prefs[pair.first] = pair.second.get();
|
|
|
| // Walk over the maps in lockstep, adding everything that is different.
|
| - auto this_pref(this_prefs.begin());
|
| - auto other_pref(other_prefs.begin());
|
| + auto this_pref = this_prefs.begin();
|
| + auto other_pref = other_prefs.begin();
|
| while (this_pref != this_prefs.end() && other_pref != other_prefs.end()) {
|
| const int diff = this_pref->first.compare(other_pref->first);
|
| if (diff == 0) {
|
|
|