diff options
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/SkJSONWriter.h | 45 |
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 |