Index: gm/gm_expectations.cpp |
diff --git a/gm/gm_expectations.cpp b/gm/gm_expectations.cpp |
index 40bb2b4f906f286968a24135735357158b7aef56..f46a572458f4439a950c5e0d7af6cf6df87b1708 100644 |
--- a/gm/gm_expectations.cpp |
+++ b/gm/gm_expectations.cpp |
@@ -3,14 +3,10 @@ |
* |
* Use of this source code is governed by a BSD-style license that can be |
* found in the LICENSE file. |
- * |
- * TODO(epoger): Combine this with tools/image_expectations.cpp, or eliminate one of the two. |
*/ |
#include "gm_expectations.h" |
#include "SkBitmapHasher.h" |
-#include "SkData.h" |
-#include "SkDataUtils.h" |
#include "SkImageDecoder.h" |
#define DEBUGFAIL_SEE_STDERR SkDEBUGFAIL("see stderr for message") |
@@ -223,6 +219,24 @@ |
return Expectations(fJsonExpectedResults[testName]); |
} |
+ /*static*/ SkData* JsonExpectationsSource::ReadIntoSkData(SkStream &stream, size_t maxBytes) { |
+ if (0 == maxBytes) { |
+ return SkData::NewEmpty(); |
+ } |
+ char* bufStart = reinterpret_cast<char *>(sk_malloc_throw(maxBytes)); |
+ char* bufPtr = bufStart; |
+ size_t bytesRemaining = maxBytes; |
+ while (bytesRemaining > 0) { |
+ size_t bytesReadThisTime = stream.read(bufPtr, bytesRemaining); |
+ if (0 == bytesReadThisTime) { |
+ break; |
+ } |
+ bytesRemaining -= bytesReadThisTime; |
+ bufPtr += bytesReadThisTime; |
+ } |
+ return SkData::NewFromMalloc(bufStart, maxBytes - bytesRemaining); |
+ } |
+ |
/*static*/ bool JsonExpectationsSource::Parse(const char *jsonPath, Json::Value *jsonRoot) { |
SkFILEStream inFile(jsonPath); |
if (!inFile.isValid()) { |
@@ -231,7 +245,7 @@ |
return false; |
} |
- SkAutoDataUnref dataRef(SkDataUtils::ReadFileIntoSkData(inFile)); |
+ SkAutoDataUnref dataRef(ReadFileIntoSkData(inFile)); |
if (NULL == dataRef.get()) { |
SkDebugf("error reading JSON file %s\n", jsonPath); |
DEBUGFAIL_SEE_STDERR; |