Index: base/json/json_writer.cc |
diff --git a/base/json/json_writer.cc b/base/json/json_writer.cc |
index 27300c0b6356f42392537f88d69a45d929b4c887..e81400339ec38e98c373d06ef5d121cc2b754269 100644 |
--- a/base/json/json_writer.cc |
+++ b/base/json/json_writer.cc |
@@ -25,42 +25,43 @@ static const char kPrettyPrintLineEnding[] = "\n"; |
const char* JSONWriter::kEmptyArray = "[]"; |
/* static */ |
-void JSONWriter::Write(const Value* const node, |
- bool pretty_print, |
- std::string* json) { |
- WriteWithOptions(node, pretty_print, 0, json); |
+void JSONWriter::Write(const Value* const node, std::string* json) { |
+ WriteWithOptions(node, 0, json); |
} |
/* static */ |
-void JSONWriter::WriteWithOptions(const Value* const node, |
- bool pretty_print, |
- int options, |
+void JSONWriter::WriteWithOptions(const Value* const node, int options, |
std::string* json) { |
json->clear(); |
// Is there a better way to estimate the size of the output? |
json->reserve(1024); |
- JSONWriter writer(pretty_print, json); |
+ |
bool escape = !(options & OPTIONS_DO_NOT_ESCAPE); |
bool omit_binary_values = !!(options & OPTIONS_OMIT_BINARY_VALUES); |
bool omit_double_type_preservation = |
!!(options & OPTIONS_OMIT_DOUBLE_TYPE_PRESERVATION); |
- writer.BuildJSONString(node, 0, escape, omit_binary_values, |
- omit_double_type_preservation); |
+ bool pretty_print = !!(options & OPTIONS_PRETTY_PRINT); |
+ |
+ JSONWriter writer(escape, omit_binary_values, omit_double_type_preservation, |
+ pretty_print, json); |
+ writer.BuildJSONString(node, 0); |
+ |
if (pretty_print) |
json->append(kPrettyPrintLineEnding); |
} |
-JSONWriter::JSONWriter(bool pretty_print, std::string* json) |
- : json_string_(json), |
- pretty_print_(pretty_print) { |
+JSONWriter::JSONWriter(bool escape, bool omit_binary_values, |
+ bool omit_double_type_preservation, bool pretty_print, |
+ std::string* json) |
+ : escape_(escape), |
+ omit_binary_values_(omit_binary_values), |
+ omit_double_type_preservation_(omit_double_type_preservation), |
+ pretty_print_(pretty_print), |
+ json_string_(json) { |
DCHECK(json); |
} |
-void JSONWriter::BuildJSONString(const Value* const node, |
- int depth, |
- bool escape, |
- bool omit_binary_values, |
- bool omit_double_type_preservation) { |
+void JSONWriter::BuildJSONString(const Value* const node, int depth) { |
switch (node->GetType()) { |
case Value::TYPE_NULL: |
json_string_->append("null"); |
@@ -89,7 +90,7 @@ void JSONWriter::BuildJSONString(const Value* const node, |
double value; |
bool result = node->GetAsDouble(&value); |
DCHECK(result); |
- if (omit_double_type_preservation && |
+ if (omit_double_type_preservation_ && |
value <= kint64max && |
value >= kint64min && |
std::floor(value) == value) { |
@@ -122,7 +123,7 @@ void JSONWriter::BuildJSONString(const Value* const node, |
std::string value; |
bool result = node->GetAsString(&value); |
DCHECK(result); |
- if (escape) { |
+ if (escape_) { |
JsonDoubleQuote(UTF8ToUTF16(value), true, json_string_); |
} else { |
JsonDoubleQuote(value, true, json_string_); |
@@ -142,7 +143,7 @@ void JSONWriter::BuildJSONString(const Value* const node, |
bool result = list->Get(i, &value); |
DCHECK(result); |
- if (omit_binary_values && value->GetType() == Value::TYPE_BINARY) { |
+ if (omit_binary_values_ && value->GetType() == Value::TYPE_BINARY) { |
continue; |
} |
@@ -152,8 +153,7 @@ void JSONWriter::BuildJSONString(const Value* const node, |
json_string_->append(" "); |
} |
- BuildJSONString(value, depth, escape, omit_binary_values, |
- omit_double_type_preservation); |
+ BuildJSONString(value, depth); |
} |
if (pretty_print_) |
@@ -177,7 +177,7 @@ void JSONWriter::BuildJSONString(const Value* const node, |
bool result = dict->GetWithoutPathExpansion(*key_itr, &value); |
DCHECK(result); |
- if (omit_binary_values && value->GetType() == Value::TYPE_BINARY) { |
+ if (omit_binary_values_ && value->GetType() == Value::TYPE_BINARY) { |
continue; |
} |
@@ -195,8 +195,7 @@ void JSONWriter::BuildJSONString(const Value* const node, |
} else { |
json_string_->append(":"); |
} |
- BuildJSONString(value, depth + 1, escape, omit_binary_values, |
- omit_double_type_preservation); |
+ BuildJSONString(value, depth + 1); |
} |
if (pretty_print_) { |
@@ -211,7 +210,7 @@ void JSONWriter::BuildJSONString(const Value* const node, |
case Value::TYPE_BINARY: |
{ |
- if (!omit_binary_values) { |
+ if (!omit_binary_values_) { |
NOTREACHED() << "Cannot serialize binary value."; |
} |
break; |