From 3449789b9ca58fee7e5cd02ff89d544f4a6bc9b5 Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Tue, 20 Jan 2015 15:52:43 -0500 Subject: SkStream is no longer a ref counted object. With https://codereview.chromium.org/849103004/, SkStream is no longer ref counted. Change callers that currently unref() SkStreams to one of either: - delete the stream - pass ownership of the stream screencap.cpp: Call EncodeData directly, bypassing SkDynamicMemoryWStream and SkBitmap. Utils.cpp: Write directly to an SkData, and then use that to construct a new SkStream. Cherry-pick of a change that originally landed in master-skia and is dependent on a skia merge (ag/655422). Change-Id: Idc99ad7d5a70c893dc012d59915216f301ab3c9d --- cmds/screencap/screencap.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'cmds/screencap/screencap.cpp') diff --git a/cmds/screencap/screencap.cpp b/cmds/screencap/screencap.cpp index b0aee7b08d8c..dbc35af2c22d 100644 --- a/cmds/screencap/screencap.cpp +++ b/cmds/screencap/screencap.cpp @@ -36,9 +36,7 @@ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-parameter" #include -#include #include -#include #pragma GCC diagnostic pop using namespace android; @@ -198,14 +196,11 @@ int main(int argc, char** argv) if (png) { const SkImageInfo info = SkImageInfo::Make(w, h, flinger2skia(f), kPremul_SkAlphaType); - SkBitmap b; - b.installPixels(info, const_cast(base), s*bytesPerPixel(f)); - SkDynamicMemoryWStream stream; - SkImageEncoder::EncodeStream(&stream, b, - SkImageEncoder::kPNG_Type, SkImageEncoder::kDefaultQuality); - SkData* streamData = stream.copyToData(); - write(fd, streamData->data(), streamData->size()); - streamData->unref(); + SkAutoTUnref data(SkImageEncoder::EncodeData(info, base, s*bytesPerPixel(f), + SkImageEncoder::kPNG_Type, SkImageEncoder::kDefaultQuality)); + if (data.get()) { + write(fd, data->data(), data->size()); + } if (fn != NULL) { notifyMediaScanner(fn); } -- cgit v1.2.3-59-g8ed1b