Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(181)

Side by Side Diff: base/values.cc

Issue 753603002: Change preference APIs to take std::string instead of const char*. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/values.h" 5 #include "base/values.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <ostream> 10 #include <ostream>
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 414
415 void DictionaryValue::SetString(const std::string& path, 415 void DictionaryValue::SetString(const std::string& path,
416 const string16& in_value) { 416 const string16& in_value) {
417 Set(path, new StringValue(in_value)); 417 Set(path, new StringValue(in_value));
418 } 418 }
419 419
420 void DictionaryValue::SetWithoutPathExpansion(const std::string& key, 420 void DictionaryValue::SetWithoutPathExpansion(const std::string& key,
421 Value* in_value) { 421 Value* in_value) {
422 // If there's an existing value here, we need to delete it, because 422 // If there's an existing value here, we need to delete it, because
423 // we own all our children. 423 // we own all our children.
424 std::pair<ValueMap::iterator, bool> ins_res = 424 ValueMap::iterator it = dictionary_.find(key);
425 dictionary_.insert(std::make_pair(key, in_value)); 425 if (it == dictionary_.end()) {
Nico 2014/12/01 16:57:02 Isn't the lhs better here? It requires on-stack al
Georges Khalil 2014/12/01 20:34:11 I'm removing this code from the CL, because it doe
426 if (!ins_res.second) { 426 dictionary_.insert(std::make_pair(key, in_value));
427 DCHECK_NE(ins_res.first->second, in_value); // This would be bogus 427 } else {
428 delete ins_res.first->second; 428 DCHECK_NE(it->second, in_value); // This would be bogus
429 ins_res.first->second = in_value; 429 delete it->second;
430 it->second = in_value;
430 } 431 }
431 } 432 }
432 433
433 void DictionaryValue::SetBooleanWithoutPathExpansion( 434 void DictionaryValue::SetBooleanWithoutPathExpansion(
434 const std::string& path, bool in_value) { 435 const std::string& path, bool in_value) {
435 SetWithoutPathExpansion(path, new FundamentalValue(in_value)); 436 SetWithoutPathExpansion(path, new FundamentalValue(in_value));
436 } 437 }
437 438
438 void DictionaryValue::SetIntegerWithoutPathExpansion( 439 void DictionaryValue::SetIntegerWithoutPathExpansion(
439 const std::string& path, int in_value) { 440 const std::string& path, int in_value) {
(...skipping 685 matching lines...) Expand 10 before | Expand all | Expand 10 after
1125 1126
1126 std::ostream& operator<<(std::ostream& out, const Value& value) { 1127 std::ostream& operator<<(std::ostream& out, const Value& value) {
1127 std::string json; 1128 std::string json;
1128 JSONWriter::WriteWithOptions(&value, 1129 JSONWriter::WriteWithOptions(&value,
1129 JSONWriter::OPTIONS_PRETTY_PRINT, 1130 JSONWriter::OPTIONS_PRETTY_PRINT,
1130 &json); 1131 &json);
1131 return out << json; 1132 return out << json;
1132 } 1133 }
1133 1134
1134 } // namespace base 1135 } // namespace base
OLDNEW
« base/prefs/pref_value_store.cc ('K') | « base/prefs/testing_pref_service.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698