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
This commit is contained in:
committed by
Derek Sollenberger
parent
c6ee744a90
commit
3449789b9c
@@ -36,9 +36,7 @@
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
#include <SkImageEncoder.h>
|
||||
#include <SkBitmap.h>
|
||||
#include <SkData.h>
|
||||
#include <SkStream.h>
|
||||
#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<void*>(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<SkData> 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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user