| Index: base/values.h
|
| diff --git a/base/values.h b/base/values.h
|
| index 141ea934201f5fc449bd8e7074c8c494905b4862..e2506cc14f5515ab9fba9a76c1995fe8575dc9d5 100644
|
| --- a/base/values.h
|
| +++ b/base/values.h
|
| @@ -22,6 +22,7 @@
|
|
|
| #include <iosfwd>
|
| #include <map>
|
| +#include <memory>
|
| #include <string>
|
| #include <utility>
|
| #include <vector>
|
| @@ -29,7 +30,6 @@
|
| #include "base/base_export.h"
|
| #include "base/compiler_specific.h"
|
| #include "base/macros.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| #include "base/strings/string16.h"
|
| #include "base/strings/string_piece.h"
|
|
|
| @@ -66,7 +66,7 @@ class BASE_EXPORT Value {
|
|
|
| virtual ~Value();
|
|
|
| - static scoped_ptr<Value> CreateNullValue();
|
| + static std::unique_ptr<Value> CreateNullValue();
|
|
|
| // Returns the type of the value stored by the current Value object.
|
| // Each type will be implemented by only one subclass of Value, so it's
|
| @@ -102,7 +102,7 @@ class BASE_EXPORT Value {
|
| // this works because C++ supports covariant return types.
|
| virtual Value* DeepCopy() const;
|
| // Preferred version of DeepCopy. TODO(estade): remove the above.
|
| - scoped_ptr<Value> CreateDeepCopy() const;
|
| + std::unique_ptr<Value> CreateDeepCopy() const;
|
|
|
| // Compares if two Value objects have equal contents.
|
| virtual bool Equals(const Value* other) const;
|
| @@ -178,7 +178,7 @@ class BASE_EXPORT BinaryValue: public Value {
|
|
|
| // Creates a BinaryValue, taking ownership of the bytes pointed to by
|
| // |buffer|.
|
| - BinaryValue(scoped_ptr<char[]> buffer, size_t size);
|
| + BinaryValue(std::unique_ptr<char[]> buffer, size_t size);
|
|
|
| ~BinaryValue() override;
|
|
|
| @@ -199,7 +199,7 @@ class BASE_EXPORT BinaryValue: public Value {
|
| bool Equals(const Value* other) const override;
|
|
|
| private:
|
| - scoped_ptr<char[]> buffer_;
|
| + std::unique_ptr<char[]> buffer_;
|
| size_t size_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(BinaryValue);
|
| @@ -211,7 +211,7 @@ class BASE_EXPORT BinaryValue: public Value {
|
| class BASE_EXPORT DictionaryValue : public Value {
|
| public:
|
| // Returns |value| if it is a dictionary, nullptr otherwise.
|
| - static scoped_ptr<DictionaryValue> From(scoped_ptr<Value> value);
|
| + static std::unique_ptr<DictionaryValue> From(std::unique_ptr<Value> value);
|
|
|
| DictionaryValue();
|
| ~DictionaryValue() override;
|
| @@ -239,7 +239,7 @@ class BASE_EXPORT DictionaryValue : public Value {
|
| // If the key at any step of the way doesn't exist, or exists but isn't
|
| // a DictionaryValue, a new DictionaryValue will be created and attached
|
| // to the path in that location. |in_value| must be non-null.
|
| - void Set(const std::string& path, scoped_ptr<Value> in_value);
|
| + void Set(const std::string& path, std::unique_ptr<Value> in_value);
|
| // Deprecated version of the above. TODO(estade): remove.
|
| void Set(const std::string& path, Value* in_value);
|
|
|
| @@ -254,7 +254,7 @@ class BASE_EXPORT DictionaryValue : public Value {
|
| // Like Set(), but without special treatment of '.'. This allows e.g. URLs to
|
| // be used as paths.
|
| void SetWithoutPathExpansion(const std::string& key,
|
| - scoped_ptr<Value> in_value);
|
| + std::unique_ptr<Value> in_value);
|
| // Deprecated version of the above. TODO(estade): remove.
|
| void SetWithoutPathExpansion(const std::string& key, Value* in_value);
|
|
|
| @@ -329,21 +329,22 @@ class BASE_EXPORT DictionaryValue : public Value {
|
| // |out_value|. If |out_value| is NULL, the removed value will be deleted.
|
| // This method returns true if |path| is a valid path; otherwise it will
|
| // return false and the DictionaryValue object will be unchanged.
|
| - virtual bool Remove(const std::string& path, scoped_ptr<Value>* out_value);
|
| + virtual bool Remove(const std::string& path,
|
| + std::unique_ptr<Value>* out_value);
|
|
|
| // Like Remove(), but without special treatment of '.'. This allows e.g. URLs
|
| // to be used as paths.
|
| virtual bool RemoveWithoutPathExpansion(const std::string& key,
|
| - scoped_ptr<Value>* out_value);
|
| + std::unique_ptr<Value>* out_value);
|
|
|
| // Removes a path, clearing out all dictionaries on |path| that remain empty
|
| // after removing the value at |path|.
|
| virtual bool RemovePath(const std::string& path,
|
| - scoped_ptr<Value>* out_value);
|
| + std::unique_ptr<Value>* out_value);
|
|
|
| // Makes a copy of |this| but doesn't include empty dictionaries and lists in
|
| // the copy. This never returns NULL, even if |this| itself is empty.
|
| - scoped_ptr<DictionaryValue> DeepCopyWithoutEmptyChildren() const;
|
| + std::unique_ptr<DictionaryValue> DeepCopyWithoutEmptyChildren() const;
|
|
|
| // Merge |dictionary| into this dictionary. This is done recursively, i.e. any
|
| // sub-dictionaries will be merged as well. In case of key collisions, the
|
| @@ -377,7 +378,7 @@ class BASE_EXPORT DictionaryValue : public Value {
|
| // Overridden from Value:
|
| DictionaryValue* DeepCopy() const override;
|
| // Preferred version of DeepCopy. TODO(estade): remove the above.
|
| - scoped_ptr<DictionaryValue> CreateDeepCopy() const;
|
| + std::unique_ptr<DictionaryValue> CreateDeepCopy() const;
|
| bool Equals(const Value* other) const override;
|
|
|
| private:
|
| @@ -393,7 +394,7 @@ class BASE_EXPORT ListValue : public Value {
|
| typedef ValueVector::const_iterator const_iterator;
|
|
|
| // Returns |value| if it is a list, nullptr otherwise.
|
| - static scoped_ptr<ListValue> From(scoped_ptr<Value> value);
|
| + static std::unique_ptr<ListValue> From(std::unique_ptr<Value> value);
|
|
|
| ListValue();
|
| ~ListValue() override;
|
| @@ -414,7 +415,7 @@ class BASE_EXPORT ListValue : public Value {
|
| // the value is a null pointer.
|
| bool Set(size_t index, Value* in_value);
|
| // Preferred version of the above. TODO(estade): remove the above.
|
| - bool Set(size_t index, scoped_ptr<Value> in_value);
|
| + bool Set(size_t index, std::unique_ptr<Value> in_value);
|
|
|
| // Gets the Value at the given index. Modifies |out_value| (and returns true)
|
| // only if the index falls within the current list range.
|
| @@ -446,7 +447,7 @@ class BASE_EXPORT ListValue : public Value {
|
| // passed out via |out_value|. If |out_value| is NULL, the removed value will
|
| // be deleted. This method returns true if |index| is valid; otherwise
|
| // it will return false and the ListValue object will be unchanged.
|
| - virtual bool Remove(size_t index, scoped_ptr<Value>* out_value);
|
| + virtual bool Remove(size_t index, std::unique_ptr<Value>* out_value);
|
|
|
| // Removes the first instance of |value| found in the list, if any, and
|
| // deletes it. |index| is the location where |value| was found. Returns false
|
| @@ -457,10 +458,10 @@ class BASE_EXPORT ListValue : public Value {
|
| // deleted, otherwise ownership of the value is passed back to the caller.
|
| // Returns an iterator pointing to the location of the element that
|
| // followed the erased element.
|
| - iterator Erase(iterator iter, scoped_ptr<Value>* out_value);
|
| + iterator Erase(iterator iter, std::unique_ptr<Value>* out_value);
|
|
|
| // Appends a Value to the end of the list.
|
| - void Append(scoped_ptr<Value> in_value);
|
| + void Append(std::unique_ptr<Value> in_value);
|
| // Deprecated version of the above. TODO(estade): remove.
|
| void Append(Value* in_value);
|
|
|
| @@ -504,7 +505,7 @@ class BASE_EXPORT ListValue : public Value {
|
| bool Equals(const Value* other) const override;
|
|
|
| // Preferred version of DeepCopy. TODO(estade): remove DeepCopy.
|
| - scoped_ptr<ListValue> CreateDeepCopy() const;
|
| + std::unique_ptr<ListValue> CreateDeepCopy() const;
|
|
|
| private:
|
| ValueVector list_;
|
| @@ -533,8 +534,8 @@ class BASE_EXPORT ValueDeserializer {
|
| // error_code will be set with the underlying error.
|
| // If |error_message| is non-null, it will be filled in with a formatted
|
| // error message including the location of the error if appropriate.
|
| - virtual scoped_ptr<Value> Deserialize(int* error_code,
|
| - std::string* error_str) = 0;
|
| + virtual std::unique_ptr<Value> Deserialize(int* error_code,
|
| + std::string* error_str) = 0;
|
| };
|
|
|
| // Stream operator so Values can be used in assertion statements. In order that
|
|
|