aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/SkJSONWriter.h45
1 files changed, 10 insertions, 35 deletions
diff --git a/src/utils/SkJSONWriter.h b/src/utils/SkJSONWriter.h
index 716bd60d9c..9ac28ebc47 100644
--- a/src/utils/SkJSONWriter.h
+++ b/src/utils/SkJSONWriter.h
@@ -54,14 +54,12 @@ public:
, fMode(mode)
, fState(State::kStart) {
fScopeStack.push_back(Scope::kNone);
- fNewlineStack.push_back(true);
}
~SkJSONWriter() {
this->flush();
delete[] fBlock;
SkASSERT(fScopeStack.count() == 1);
- SkASSERT(fNewlineStack.count() == 1);
}
/**
@@ -88,7 +86,7 @@ public:
if (State::kObjectValue == fState) {
this->write(",", 1);
}
- this->separator(this->multiline());
+ this->newline();
this->write("\"", 1);
this->write(name, strlen(name));
this->write("\":", 2);
@@ -98,17 +96,12 @@ public:
/**
* Adds a new object. A name must be supplied when called between beginObject() and
* endObject(). Calls to beginObject() must be balanced by corresponding calls to endObject().
- * By default, objects are written out with one named value per line (when in kPretty mode).
- * This can be overridden for a particular object by passing false for multiline, this will
- * keep the entire object on a single line. This can help with readability in some situations.
- * In kFast mode, this parameter is ignored.
*/
- void beginObject(const char* name = nullptr, bool multiline = true) {
+ void beginObject(const char* name = nullptr) {
this->appendName(name);
this->beginValue(true);
this->write("{", 1);
fScopeStack.push_back(Scope::kObject);
- fNewlineStack.push_back(multiline);
fState = State::kObjectBegin;
}
@@ -119,10 +112,9 @@ public:
SkASSERT(Scope::kObject == this->scope());
SkASSERT(State::kObjectBegin == fState || State::kObjectValue == fState);
bool emptyObject = State::kObjectBegin == fState;
- bool wasMultiline = this->multiline();
this->popScope();
if (!emptyObject) {
- this->separator(wasMultiline);
+ this->newline();
}
this->write("}", 1);
}
@@ -130,17 +122,12 @@ public:
/**
* Adds a new array. A name must be supplied when called between beginObject() and
* endObject(). Calls to beginArray() must be balanced by corresponding calls to endArray().
- * By default, arrays are written out with one value per line (when in kPretty mode).
- * This can be overridden for a particular array by passing false for multiline, this will
- * keep the entire array on a single line. This can help with readability in some situations.
- * In kFast mode, this parameter is ignored.
*/
- void beginArray(const char* name = nullptr, bool multiline = true) {
+ void beginArray(const char* name = nullptr) {
this->appendName(name);
this->beginValue(true);
this->write("[", 1);
fScopeStack.push_back(Scope::kArray);
- fNewlineStack.push_back(multiline);
fState = State::kArrayBegin;
}
@@ -151,10 +138,9 @@ public:
SkASSERT(Scope::kArray == this->scope());
SkASSERT(State::kArrayBegin == fState || State::kArrayValue == fState);
bool emptyArray = State::kArrayBegin == fState;
- bool wasMultiline = this->multiline();
this->popScope();
if (!emptyArray) {
- this->separator(wasMultiline);
+ this->newline();
}
this->write("]", 1);
}
@@ -273,7 +259,7 @@ private:
this->write(",", 1);
}
if (Scope::kArray == this->scope()) {
- this->separator(this->multiline());
+ this->newline();
} else if (Scope::kObject == this->scope() && Mode::kPretty == fMode) {
this->write(" ", 1);
}
@@ -284,15 +270,11 @@ private:
}
}
- void separator(bool multiline) {
+ void newline() {
if (Mode::kPretty == fMode) {
- if (multiline) {
- this->write("\n", 1);
- for (int i = 0; i < fScopeStack.count() - 1; ++i) {
- this->write(" ", 3);
- }
- } else {
- this->write(" ", 1);
+ this->write("\n", 1);
+ for (int i = 0; i < fScopeStack.count() - 1; ++i) {
+ this->write(" ", 3);
}
}
}
@@ -316,14 +298,8 @@ private:
return fScopeStack.back();
}
- bool multiline() const {
- SkASSERT(!fNewlineStack.empty());
- return fNewlineStack.back();
- }
-
void popScope() {
fScopeStack.pop_back();
- fNewlineStack.pop_back();
switch (this->scope()) {
case Scope::kNone:
fState = State::kEnd;
@@ -348,7 +324,6 @@ private:
Mode fMode;
State fState;
SkSTArray<16, Scope, true> fScopeStack;
- SkSTArray<16, bool, true> fNewlineStack;
};
#endif