Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Unified Diff: gm/gmmain.cpp

Issue 849103004: Make SkStream *not* ref counted. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Treat SkFontMgr::createFromStream as taking ownership of the stream (is this correct?) Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
« no previous file with comments | « gm/dftext.cpp ('k') | include/core/SkImageDecoder.h » ('j') | include/core/SkStream.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698