Chromium Code Reviews| Index: gm/gmmain.cpp |
| diff --git a/gm/gmmain.cpp b/gm/gmmain.cpp |
| index 8f6d53a25530efd509d3ae3b3d48e5d1a4ffade7..9532458f15541b53f75cd357a5bd73cbeb099f8c 100644 |
| --- a/gm/gmmain.cpp |
| +++ b/gm/gmmain.cpp |
| @@ -1051,7 +1051,7 @@ public: |
| static SkPicture* stream_to_new_picture(const SkPicture& src) { |
| SkDynamicMemoryWStream storage; |
| src.serialize(&storage); |
| - SkAutoTUnref<SkStreamAsset> pictReadback(storage.detachAsStream()); |
| + SkAutoTDelete<SkStreamAsset> pictReadback(storage.detachAsStream()); |
| SkPicture* retval = SkPicture::CreateFromStream(pictReadback, |
| &SkImageDecoder::DecodeMemory); |
| return retval; |
| @@ -1084,7 +1084,7 @@ public: |
| if (!generate_pdf(gm, document)) { |
| errors.add(kGeneratePdfFailed_ErrorType); |
| } else { |
| - SkAutoTUnref<SkStreamAsset> documentStream(document.detachAsStream()); |
| + SkAutoTDelete<SkStreamAsset> documentStream(document.detachAsStream()); |
| if (writePath && (gRec.fFlags & kWrite_ConfigFlag)) { |
| SkString path = make_filename(writePath, gm->getName(), gRec.fName, "", "pdf"); |
| errors.add(write_document(path, documentStream)); |
| @@ -1093,9 +1093,8 @@ public: |
| if (!(gm->getFlags() & GM::kSkipPDFRasterization_Flag)) { |
| for (int i = 0; i < pdfRasterizers.count(); i++) { |
| SkBitmap pdfBitmap; |
| - documentStream->rewind(); |
| bool success = (*pdfRasterizers[i]->fRasterizerFunction)( |
| - documentStream.get(), &pdfBitmap); |
| + documentStream->duplicate(), &pdfBitmap); |
|
bungeman-skia
2015/01/15 22:44:55
I think you can just rewind and detach here, since
scroggo
2015/01/16 19:13:37
Actually, that won't work. This loops through the
|
| if (!success) { |
| SkDebugf("FAILED to render PDF for %s using renderer %s\n", |
| gm->getName(), |
| @@ -1116,7 +1115,7 @@ public: |
| } |
| } else if (gRec.fBackend == kXPS_Backend) { |
| generate_xps(gm, document); |
| - SkAutoTUnref<SkStreamAsset> documentStream(document.detachAsStream()); |
| + SkAutoTDelete<SkStreamAsset> documentStream(document.detachAsStream()); |
| errors.add(this->compareTestResultsToStoredExpectations( |
| gm, gRec, gRec.fName, NULL)); |
| @@ -1390,7 +1389,11 @@ static const ConfigData gRec[] = { |
| #endif // SK_SUPPORT_PDF |
| }; |
| -static bool SkNoRasterizePDF(SkStream*, SkBitmap*) { return false; } |
| +// Deletes SkStream, like other rasterizers. |
| +static bool SkNoRasterizePDF(SkStream* stream, SkBitmap*) { |
| + SkDELETE(stream); |
| + return false; |
| +} |
| static const PDFRasterizerData kPDFRasterizers[] = { |
| #ifdef SK_BUILD_FOR_MAC |
| @@ -1887,7 +1890,7 @@ ErrorCombination run_multiple_configs(GMMain &gmmain, GM *gm, |
| * @returns true if able to read lines from the file |
| */ |
| static bool read_lines_from_file(const char* filename, SkTArray<SkString> &lines) { |
| - SkAutoTUnref<SkStream> streamWrapper(SkStream::NewFromFile(filename)); |
| + SkAutoTDelete<SkStream> streamWrapper(SkStream::NewFromFile(filename)); |
| SkStream *stream = streamWrapper.get(); |
| if (!stream) { |
| SkDebugf("unable to read file '%s'\n", filename); |