From 97133ade536f6333a2dbaec8be6f8347bb12bd79 Mon Sep 17 00:00:00 2001 From: "commit-bot@chromium.org" Date: Tue, 20 May 2014 17:35:10 +0000 Subject: Changed JSON formatting more, workaround bug where SkStringPrintf causes encoding issues BUG=skia: R=bensong@google.com, jcgregorio@google.com, reed@google.com, bsalomon@google.com Author: kelvinly@google.com Review URL: https://codereview.chromium.org/294093002 git-svn-id: http://skia.googlecode.com/svn/trunk@14808 2bbb7eff-a529-9590-31e7-b0007b416f81 --- bench/ResultsWriter.h | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'bench/ResultsWriter.h') diff --git a/bench/ResultsWriter.h b/bench/ResultsWriter.h index b04c8ff53c..a9eef802bd 100644 --- a/bench/ResultsWriter.h +++ b/bench/ResultsWriter.h @@ -81,7 +81,7 @@ private: /** * This ResultsWriter handles writing out the results in JSON. * - * The output looks like: + * The output looks like (except compressed to a single line): * * { * "options" : { @@ -90,9 +90,12 @@ private: * ... * "system" : "UNIX" * }, - * "results" : { - * "Xfermode_Luminosity_640_480" : { - * "565" : { + * "results" : [ + * { + * "name" : "Xfermode_Luminosity_640_480", + * "results" : [ + * { + * "name": "565", * "cmsecs" : 143.188128906250, * "msecs" : 143.835957031250 * }, @@ -113,7 +116,9 @@ private: if(search_results != NULL) { return search_results; } else { - return &(root->append(Json::Value())); + Json::Value* new_val = &(root->append(Json::Value())); + (*new_val)["name"] = name; + return new_val; } } public: @@ -128,15 +133,17 @@ public: fRoot["options"][name] = value; } virtual void bench(const char name[], int32_t x, int32_t y) { - const char* full_name = SkStringPrintf( "%s_%d_%d", name, x, y).c_str(); - Json::Value* bench_node = find_named_node(&fResults, full_name); - (*bench_node)["name"] = full_name; + SkString sk_name(name); + sk_name.append("_"); + sk_name.appendS32(x); + sk_name.append("_"); + sk_name.appendS32(y); + Json::Value* bench_node = find_named_node(&fResults, sk_name.c_str()); fBench = &(*bench_node)["results"]; } virtual void config(const char name[]) { SkASSERT(NULL != fBench); fConfig = find_named_node(fBench, name); - (*fConfig)["name"] = name; } virtual void timer(const char name[], double ms) { SkASSERT(NULL != fConfig); @@ -144,10 +151,11 @@ public: } virtual void end() { SkFILEWStream stream(fFilename.c_str()); - stream.writeText(fRoot.toStyledString().c_str()); + stream.writeText(Json::FastWriter().write(fRoot).c_str()); stream.flush(); } private: + SkString fFilename; Json::Value fRoot; Json::Value& fResults; -- cgit v1.2.3