| OLD | NEW |
| 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 <cmath> | 10 #include <cmath> |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 346 return is_dict(); | 346 return is_dict(); |
| 347 } | 347 } |
| 348 | 348 |
| 349 Value* Value::DeepCopy() const { | 349 Value* Value::DeepCopy() const { |
| 350 // This method should only be getting called for null Values--all subclasses | 350 // This method should only be getting called for null Values--all subclasses |
| 351 // need to provide their own implementation;. | 351 // need to provide their own implementation;. |
| 352 switch (type()) { | 352 switch (type()) { |
| 353 case Type::NONE: | 353 case Type::NONE: |
| 354 return CreateNullValue().release(); | 354 return CreateNullValue().release(); |
| 355 | 355 |
| 356 // For now, make FundamentalValues for backward-compatibility. Convert to | |
| 357 // Value when that code is deleted. | |
| 358 case Type::BOOLEAN: | 356 case Type::BOOLEAN: |
| 359 return new FundamentalValue(bool_value_); | 357 return new Value(bool_value_); |
| 360 case Type::INTEGER: | 358 case Type::INTEGER: |
| 361 return new FundamentalValue(int_value_); | 359 return new Value(int_value_); |
| 362 case Type::DOUBLE: | 360 case Type::DOUBLE: |
| 363 return new FundamentalValue(double_value_); | 361 return new Value(double_value_); |
| 364 // For now, make StringValues for backward-compatibility. Convert to | 362 // For now, make StringValues for backward-compatibility. Convert to |
| 365 // Value when that code is deleted. | 363 // Value when that code is deleted. |
| 366 case Type::STRING: | 364 case Type::STRING: |
| 367 return new StringValue(*string_value_); | 365 return new StringValue(*string_value_); |
| 368 // For now, make BinaryValues for backward-compatibility. Convert to | 366 // For now, make BinaryValues for backward-compatibility. Convert to |
| 369 // Value when that code is deleted. | 367 // Value when that code is deleted. |
| 370 case Type::BINARY: | 368 case Type::BINARY: |
| 371 return new BinaryValue(*binary_value_); | 369 return new BinaryValue(*binary_value_); |
| 372 | 370 |
| 373 // TODO(crbug.com/646113): Clean this up when DictionaryValue and ListValue | 371 // TODO(crbug.com/646113): Clean this up when DictionaryValue and ListValue |
| (...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 666 | 664 |
| 667 current_dictionary->SetWithoutPathExpansion(current_path, | 665 current_dictionary->SetWithoutPathExpansion(current_path, |
| 668 std::move(in_value)); | 666 std::move(in_value)); |
| 669 } | 667 } |
| 670 | 668 |
| 671 void DictionaryValue::Set(StringPiece path, Value* in_value) { | 669 void DictionaryValue::Set(StringPiece path, Value* in_value) { |
| 672 Set(path, WrapUnique(in_value)); | 670 Set(path, WrapUnique(in_value)); |
| 673 } | 671 } |
| 674 | 672 |
| 675 void DictionaryValue::SetBoolean(StringPiece path, bool in_value) { | 673 void DictionaryValue::SetBoolean(StringPiece path, bool in_value) { |
| 676 Set(path, new FundamentalValue(in_value)); | 674 Set(path, new Value(in_value)); |
| 677 } | 675 } |
| 678 | 676 |
| 679 void DictionaryValue::SetInteger(StringPiece path, int in_value) { | 677 void DictionaryValue::SetInteger(StringPiece path, int in_value) { |
| 680 Set(path, new FundamentalValue(in_value)); | 678 Set(path, new Value(in_value)); |
| 681 } | 679 } |
| 682 | 680 |
| 683 void DictionaryValue::SetDouble(StringPiece path, double in_value) { | 681 void DictionaryValue::SetDouble(StringPiece path, double in_value) { |
| 684 Set(path, new FundamentalValue(in_value)); | 682 Set(path, new Value(in_value)); |
| 685 } | 683 } |
| 686 | 684 |
| 687 void DictionaryValue::SetString(StringPiece path, StringPiece in_value) { | 685 void DictionaryValue::SetString(StringPiece path, StringPiece in_value) { |
| 688 Set(path, new StringValue(in_value)); | 686 Set(path, new StringValue(in_value)); |
| 689 } | 687 } |
| 690 | 688 |
| 691 void DictionaryValue::SetString(StringPiece path, const string16& in_value) { | 689 void DictionaryValue::SetString(StringPiece path, const string16& in_value) { |
| 692 Set(path, new StringValue(in_value)); | 690 Set(path, new StringValue(in_value)); |
| 693 } | 691 } |
| 694 | 692 |
| 695 void DictionaryValue::SetWithoutPathExpansion(StringPiece key, | 693 void DictionaryValue::SetWithoutPathExpansion(StringPiece key, |
| 696 std::unique_ptr<Value> in_value) { | 694 std::unique_ptr<Value> in_value) { |
| 697 (**dict_ptr_)[key.as_string()] = std::move(in_value); | 695 (**dict_ptr_)[key.as_string()] = std::move(in_value); |
| 698 } | 696 } |
| 699 | 697 |
| 700 void DictionaryValue::SetWithoutPathExpansion(StringPiece key, | 698 void DictionaryValue::SetWithoutPathExpansion(StringPiece key, |
| 701 Value* in_value) { | 699 Value* in_value) { |
| 702 SetWithoutPathExpansion(key, WrapUnique(in_value)); | 700 SetWithoutPathExpansion(key, WrapUnique(in_value)); |
| 703 } | 701 } |
| 704 | 702 |
| 705 void DictionaryValue::SetBooleanWithoutPathExpansion(StringPiece path, | 703 void DictionaryValue::SetBooleanWithoutPathExpansion(StringPiece path, |
| 706 bool in_value) { | 704 bool in_value) { |
| 707 SetWithoutPathExpansion(path, | 705 SetWithoutPathExpansion(path, base::MakeUnique<base::Value>(in_value)); |
| 708 base::MakeUnique<base::FundamentalValue>(in_value)); | |
| 709 } | 706 } |
| 710 | 707 |
| 711 void DictionaryValue::SetIntegerWithoutPathExpansion(StringPiece path, | 708 void DictionaryValue::SetIntegerWithoutPathExpansion(StringPiece path, |
| 712 int in_value) { | 709 int in_value) { |
| 713 SetWithoutPathExpansion(path, | 710 SetWithoutPathExpansion(path, base::MakeUnique<base::Value>(in_value)); |
| 714 base::MakeUnique<base::FundamentalValue>(in_value)); | |
| 715 } | 711 } |
| 716 | 712 |
| 717 void DictionaryValue::SetDoubleWithoutPathExpansion(StringPiece path, | 713 void DictionaryValue::SetDoubleWithoutPathExpansion(StringPiece path, |
| 718 double in_value) { | 714 double in_value) { |
| 719 SetWithoutPathExpansion(path, | 715 SetWithoutPathExpansion(path, base::MakeUnique<base::Value>(in_value)); |
| 720 base::MakeUnique<base::FundamentalValue>(in_value)); | |
| 721 } | 716 } |
| 722 | 717 |
| 723 void DictionaryValue::SetStringWithoutPathExpansion(StringPiece path, | 718 void DictionaryValue::SetStringWithoutPathExpansion(StringPiece path, |
| 724 StringPiece in_value) { | 719 StringPiece in_value) { |
| 725 SetWithoutPathExpansion(path, base::MakeUnique<base::StringValue>(in_value)); | 720 SetWithoutPathExpansion(path, base::MakeUnique<base::StringValue>(in_value)); |
| 726 } | 721 } |
| 727 | 722 |
| 728 void DictionaryValue::SetStringWithoutPathExpansion(StringPiece path, | 723 void DictionaryValue::SetStringWithoutPathExpansion(StringPiece path, |
| 729 const string16& in_value) { | 724 const string16& in_value) { |
| 730 SetWithoutPathExpansion(path, base::MakeUnique<base::StringValue>(in_value)); | 725 SetWithoutPathExpansion(path, base::MakeUnique<base::StringValue>(in_value)); |
| (...skipping 536 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1267 } | 1262 } |
| 1268 | 1263 |
| 1269 #if !defined(OS_LINUX) | 1264 #if !defined(OS_LINUX) |
| 1270 void ListValue::Append(Value* in_value) { | 1265 void ListValue::Append(Value* in_value) { |
| 1271 DCHECK(in_value); | 1266 DCHECK(in_value); |
| 1272 Append(WrapUnique(in_value)); | 1267 Append(WrapUnique(in_value)); |
| 1273 } | 1268 } |
| 1274 #endif | 1269 #endif |
| 1275 | 1270 |
| 1276 void ListValue::AppendBoolean(bool in_value) { | 1271 void ListValue::AppendBoolean(bool in_value) { |
| 1277 Append(MakeUnique<FundamentalValue>(in_value)); | 1272 Append(MakeUnique<Value>(in_value)); |
| 1278 } | 1273 } |
| 1279 | 1274 |
| 1280 void ListValue::AppendInteger(int in_value) { | 1275 void ListValue::AppendInteger(int in_value) { |
| 1281 Append(MakeUnique<FundamentalValue>(in_value)); | 1276 Append(MakeUnique<Value>(in_value)); |
| 1282 } | 1277 } |
| 1283 | 1278 |
| 1284 void ListValue::AppendDouble(double in_value) { | 1279 void ListValue::AppendDouble(double in_value) { |
| 1285 Append(MakeUnique<FundamentalValue>(in_value)); | 1280 Append(MakeUnique<Value>(in_value)); |
| 1286 } | 1281 } |
| 1287 | 1282 |
| 1288 void ListValue::AppendString(StringPiece in_value) { | 1283 void ListValue::AppendString(StringPiece in_value) { |
| 1289 Append(MakeUnique<StringValue>(in_value)); | 1284 Append(MakeUnique<StringValue>(in_value)); |
| 1290 } | 1285 } |
| 1291 | 1286 |
| 1292 void ListValue::AppendString(const string16& in_value) { | 1287 void ListValue::AppendString(const string16& in_value) { |
| 1293 Append(MakeUnique<StringValue>(in_value)); | 1288 Append(MakeUnique<StringValue>(in_value)); |
| 1294 } | 1289 } |
| 1295 | 1290 |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1359 } | 1354 } |
| 1360 | 1355 |
| 1361 std::ostream& operator<<(std::ostream& out, const Value::Type& type) { | 1356 std::ostream& operator<<(std::ostream& out, const Value::Type& type) { |
| 1362 if (static_cast<int>(type) < 0 || | 1357 if (static_cast<int>(type) < 0 || |
| 1363 static_cast<size_t>(type) >= arraysize(kTypeNames)) | 1358 static_cast<size_t>(type) >= arraysize(kTypeNames)) |
| 1364 return out << "Invalid Type (index = " << static_cast<int>(type) << ")"; | 1359 return out << "Invalid Type (index = " << static_cast<int>(type) << ")"; |
| 1365 return out << Value::GetTypeName(type); | 1360 return out << Value::GetTypeName(type); |
| 1366 } | 1361 } |
| 1367 | 1362 |
| 1368 } // namespace base | 1363 } // namespace base |
| OLD | NEW |