diff options
author | Brian Osman <brianosman@google.com> | 2017-08-10 10:23:25 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-08-10 15:42:25 +0000 |
commit | 71a1889a1432715e515e000f1f4ef277e90e9ae1 (patch) | |
tree | 5965dc540193f8e9d6add43928a0985eb24bb389 /src/utils | |
parent | 47238c79c4dd61c8770f45fc36d0cdbaea00b3e2 (diff) |
Revert "Revert "GrContext::dump that produces JSON formatted output""
This reverts commit 0f450acd76fd58a2f7464f99869ed6afbfac303c.
Bug: skia:
Change-Id: I97428fbbc6d82bf8b186ec5fdbf1a939c00e4126
Reviewed-on: https://skia-review.googlesource.com/32726
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/SkJSONWriter.cpp | 43 | ||||
-rw-r--r-- | src/utils/SkJSONWriter.h | 24 |
2 files changed, 48 insertions, 19 deletions
diff --git a/src/utils/SkJSONWriter.cpp b/src/utils/SkJSONWriter.cpp new file mode 100644 index 0000000000..3b92aa4576 --- /dev/null +++ b/src/utils/SkJSONWriter.cpp @@ -0,0 +1,43 @@ +/* + * Copyright 2017 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +// Make sure that the PRI format string macros are defined +#define __STDC_FORMAT_MACROS +#include <inttypes.h> +#include <stdarg.h> + +#include "SkJSONWriter.h" + +void SkJSONWriter::appendS64(int64_t value) { + this->beginValue(); + this->appendf("%" PRId64, value); +} + +void SkJSONWriter::appendU64(uint64_t value) { + this->beginValue(); + this->appendf("%" PRIu64, value); +} + +void SkJSONWriter::appendHexU64(uint64_t value) { + this->beginValue(); + this->appendf("\"0x%" PRIx64 "\"", value); +} + +void SkJSONWriter::appendf(const char* fmt, ...) { + const int kBufferSize = 1024; + char buffer[kBufferSize]; + va_list argp; + va_start(argp, fmt); +#ifdef SK_BUILD_FOR_WIN + int length = _vsnprintf_s(buffer, kBufferSize, _TRUNCATE, fmt, argp); +#else + int length = vsnprintf(buffer, kBufferSize, fmt, argp); +#endif + SkASSERT(length >= 0 && length < kBufferSize); + va_end(argp); + this->write(buffer, length); +} diff --git a/src/utils/SkJSONWriter.h b/src/utils/SkJSONWriter.h index 9ac28ebc47..65f9990d22 100644 --- a/src/utils/SkJSONWriter.h +++ b/src/utils/SkJSONWriter.h @@ -9,8 +9,7 @@ #define SkJSONWriter_DEFINED #include "SkStream.h" - -#include <inttypes.h> +#include "SkTArray.h" /** * Lightweight class for writing properly structured JSON data. No random-access, everything must @@ -182,13 +181,13 @@ public: } } void appendS32(int32_t value) { this->beginValue(); this->appendf("%d", value); } - void appendS64(int64_t value) { this->beginValue(); this->appendf("%" PRId64, value); } + void appendS64(int64_t value); void appendU32(uint32_t value) { this->beginValue(); this->appendf("%u", value); } - void appendU64(uint64_t value) { this->beginValue(); this->appendf("%" PRIu64, value); } + void appendU64(uint64_t value); void appendFloat(float value) { this->beginValue(); this->appendf("%f", value);; } void appendDouble(double value) { this->beginValue(); this->appendf("%f", value); } void appendHexU32(uint32_t value) { this->beginValue(); this->appendf("\"0x%x\"", value); } - void appendHexU64(uint64_t value) { this->beginValue(); this->appendf("\"0x%" PRIx64 "\"", value); } + void appendHexU64(uint64_t value); #define DEFINE_NAMED_APPEND(function, type) \ void function(const char* name, type value) { this->appendName(name); this->function(value); } @@ -235,20 +234,7 @@ private: kArrayValue, }; - void appendf(const char* fmt, ...) { - const int kBufferSize = 1024; - char buffer[kBufferSize]; - va_list argp; - va_start(argp, fmt); -#ifdef SK_BUILD_FOR_WIN - int length = _vsnprintf_s(buffer, kBufferSize, _TRUNCATE, fmt, argp); -#else - int length = vsnprintf(buffer, kBufferSize, fmt, argp); -#endif - SkASSERT(length >= 0 && length < kBufferSize); - va_end(argp); - this->write(buffer, length); - } + void appendf(const char* fmt, ...); void beginValue(bool structure = false) { SkASSERT(State::kObjectName == fState || |