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

Unified Diff: base/json/json_parser.cc

Issue 2285933003: Remove more usage of the base::ListValue::Append(Value*) overload. (Closed)
Patch Set: rebase Created 4 years, 4 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/json/json_parser.h ('k') | base/json/json_parser_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « base/json/json_parser.h ('k') | base/json/json_parser_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698