Index: base/json/json_parser.cc |
diff --git a/base/json/json_parser.cc b/base/json/json_parser.cc |
index 36e9dcac736938c2e568fbe00c66dea8803f80b0..83cf64996fe0e4acd9a3f2cef78ae64745541cde 100644 |
--- a/base/json/json_parser.cc |
+++ b/base/json/json_parser.cc |
@@ -467,11 +467,11 @@ bool JSONParser::EatComment() { |
return false; |
} |
-Value* JSONParser::ParseNextToken() { |
+std::unique_ptr<Value> JSONParser::ParseNextToken() { |
return ParseToken(GetNextToken()); |
} |
-Value* JSONParser::ParseToken(Token token) { |
+std::unique_ptr<Value> JSONParser::ParseToken(Token token) { |
switch (token) { |
case T_OBJECT_BEGIN: |
return ConsumeDictionary(); |
@@ -491,7 +491,7 @@ Value* JSONParser::ParseToken(Token token) { |
} |
} |
-Value* JSONParser::ConsumeDictionary() { |
+std::unique_ptr<Value> JSONParser::ConsumeDictionary() { |
if (*pos_ != '{') { |
ReportError(JSONReader::JSON_UNEXPECTED_TOKEN, 1); |
return nullptr; |
@@ -529,13 +529,13 @@ Value* JSONParser::ConsumeDictionary() { |
// The next token is the value. Ownership transfers to |dict|. |
NextChar(); |
- Value* value = ParseNextToken(); |
+ std::unique_ptr<Value> value = ParseNextToken(); |
if (!value) { |
// ReportError from deeper level. |
return nullptr; |
} |
- dict->SetWithoutPathExpansion(key.AsString(), value); |
+ dict->SetWithoutPathExpansion(key.AsString(), std::move(value)); |
NextChar(); |
token = GetNextToken(); |
@@ -552,10 +552,10 @@ Value* JSONParser::ConsumeDictionary() { |
} |
} |
- return dict.release(); |
+ return std::move(dict); |
} |
-Value* JSONParser::ConsumeList() { |
+std::unique_ptr<Value> JSONParser::ConsumeList() { |
if (*pos_ != '[') { |
ReportError(JSONReader::JSON_UNEXPECTED_TOKEN, 1); |
return nullptr; |
@@ -572,13 +572,13 @@ Value* JSONParser::ConsumeList() { |
NextChar(); |
Token token = GetNextToken(); |
while (token != T_ARRAY_END) { |
- Value* item = ParseToken(token); |
+ std::unique_ptr<Value> item = ParseToken(token); |
if (!item) { |
// ReportError from deeper level. |
return nullptr; |
} |
- list->Append(item); |
+ list->Append(std::move(item)); |
NextChar(); |
token = GetNextToken(); |
@@ -595,10 +595,10 @@ Value* JSONParser::ConsumeList() { |
} |
} |
- return list.release(); |
+ return std::move(list); |
} |
-Value* JSONParser::ConsumeString() { |
+std::unique_ptr<Value> JSONParser::ConsumeString() { |
StringBuilder string; |
if (!ConsumeStringRaw(&string)) |
return nullptr; |
@@ -606,11 +606,11 @@ Value* JSONParser::ConsumeString() { |
// Create the Value representation, using a hidden root, if configured |
// to do so, and if the string can be represented by StringPiece. |
if (string.CanBeStringPiece() && !(options_ & JSON_DETACHABLE_CHILDREN)) |
- return new JSONStringValue(string.AsStringPiece()); |
+ return base::MakeUnique<JSONStringValue>(string.AsStringPiece()); |
if (string.CanBeStringPiece()) |
string.Convert(); |
- return new StringValue(string.AsString()); |
+ return base::MakeUnique<StringValue>(string.AsString()); |
} |
bool JSONParser::ConsumeStringRaw(StringBuilder* out) { |
@@ -827,7 +827,7 @@ void JSONParser::DecodeUTF8(const int32_t& point, StringBuilder* dest) { |
} |
} |
-Value* JSONParser::ConsumeNumber() { |
+std::unique_ptr<Value> JSONParser::ConsumeNumber() { |
const char* num_start = pos_; |
const int start_index = index_; |
int end_index = start_index; |
@@ -892,12 +892,12 @@ Value* JSONParser::ConsumeNumber() { |
int num_int; |
if (StringToInt(num_string, &num_int)) |
- return new FundamentalValue(num_int); |
+ return base::MakeUnique<FundamentalValue>(num_int); |
double num_double; |
if (StringToDouble(num_string.as_string(), &num_double) && |
std::isfinite(num_double)) { |
- return new FundamentalValue(num_double); |
+ return base::MakeUnique<FundamentalValue>(num_double); |
} |
return nullptr; |
@@ -922,7 +922,7 @@ bool JSONParser::ReadInt(bool allow_leading_zeros) { |
return true; |
} |
-Value* JSONParser::ConsumeLiteral() { |
+std::unique_ptr<Value> JSONParser::ConsumeLiteral() { |
switch (*pos_) { |
case 't': { |
const char kTrueLiteral[] = "true"; |
@@ -933,7 +933,7 @@ Value* JSONParser::ConsumeLiteral() { |
return nullptr; |
} |
NextNChars(kTrueLen - 1); |
- return new FundamentalValue(true); |
+ return base::MakeUnique<FundamentalValue>(true); |
} |
case 'f': { |
const char kFalseLiteral[] = "false"; |
@@ -944,7 +944,7 @@ Value* JSONParser::ConsumeLiteral() { |
return nullptr; |
} |
NextNChars(kFalseLen - 1); |
- return new FundamentalValue(false); |
+ return base::MakeUnique<FundamentalValue>(false); |
} |
case 'n': { |
const char kNullLiteral[] = "null"; |
@@ -955,7 +955,7 @@ Value* JSONParser::ConsumeLiteral() { |
return nullptr; |
} |
NextNChars(kNullLen - 1); |
- return Value::CreateNullValue().release(); |
+ return Value::CreateNullValue(); |
} |
default: |
ReportError(JSONReader::JSON_UNEXPECTED_TOKEN, 1); |