diff options
64 files changed, 262 insertions, 278 deletions
diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp index 518383b0e0..6ff2be4b1b 100644 --- a/bench/nanobench.cpp +++ b/bench/nanobench.cpp @@ -754,8 +754,8 @@ public: if (SkCommandLineFlags::ShouldSkip(FLAGS_match, path.c_str())) { continue; } - SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(path.c_str())); - SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded)); + sk_sp<SkData> encoded(SkData::MakeFromFileName(path.c_str())); + SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded.get())); if (!codec) { // Nothing to time. SkDebugf("Cannot find codec for %s\n", path.c_str()); @@ -815,7 +815,7 @@ public: case SkCodec::kSuccess: case SkCodec::kIncompleteInput: return new CodecBench(SkOSPath::Basename(path.c_str()), - encoded, colorType, alphaType); + encoded.get(), colorType, alphaType); case SkCodec::kInvalidConversion: // This is okay. Not all conversions are valid. break; @@ -838,8 +838,8 @@ public: if (SkCommandLineFlags::ShouldSkip(FLAGS_match, path.c_str())) { continue; } - SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(path.c_str())); - SkAutoTDelete<SkAndroidCodec> codec(SkAndroidCodec::NewFromData(encoded)); + sk_sp<SkData> encoded(SkData::MakeFromFileName(path.c_str())); + SkAutoTDelete<SkAndroidCodec> codec(SkAndroidCodec::NewFromData(encoded.get())); if (!codec) { // Nothing to time. SkDebugf("Cannot find codec for %s\n", path.c_str()); @@ -854,7 +854,8 @@ public: break; } - return new AndroidCodecBench(SkOSPath::Basename(path.c_str()), encoded, sampleSize); + return new AndroidCodecBench(SkOSPath::Basename(path.c_str()), + encoded.get(), sampleSize); } fCurrentSampleSize = 0; } @@ -887,7 +888,7 @@ public: while (fCurrentSampleSize < (int) SK_ARRAY_COUNT(brdSampleSizes)) { while (fCurrentSubsetType <= kLastSingle_SubsetType) { - SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(path.c_str())); + sk_sp<SkData> encoded(SkData::MakeFromFileName(path.c_str())); const SkColorType colorType = fColorTypes[fCurrentColorType]; uint32_t sampleSize = brdSampleSizes[fCurrentSampleSize]; int currentSubsetType = fCurrentSubsetType++; @@ -304,7 +304,7 @@ static SkTHashSet<SkString> gUninterestingHashes; static void gather_uninteresting_hashes() { if (!FLAGS_uninterestingHashesFile.isEmpty()) { - SkAutoTUnref<SkData> data(SkData::NewFromFileName(FLAGS_uninterestingHashesFile[0])); + sk_sp<SkData> data(SkData::MakeFromFileName(FLAGS_uninterestingHashesFile[0])); if (!data) { info("WARNING: unable to read uninteresting hashes from %s\n", FLAGS_uninterestingHashesFile[0]); @@ -489,12 +489,12 @@ static void push_image_gen_src(Path path, ImageGenSrc::Mode mode, SkAlphaType al } static void push_codec_srcs(Path path) { - SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(path.c_str())); + sk_sp<SkData> encoded(SkData::MakeFromFileName(path.c_str())); if (!encoded) { info("Couldn't read %s.", path.c_str()); return; } - SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded)); + SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded.get())); if (nullptr == codec.get()) { info("Couldn't create codec for %s.", path.c_str()); return; diff --git a/dm/DMJsonWriter.cpp b/dm/DMJsonWriter.cpp index 7bd8acd6d2..79f308f2ba 100644 --- a/dm/DMJsonWriter.cpp +++ b/dm/DMJsonWriter.cpp @@ -95,7 +95,7 @@ void JsonWriter::DumpJson() { } bool JsonWriter::ReadJson(const char* path, void(*callback)(BitmapResult)) { - SkAutoTUnref<SkData> json(SkData::NewFromFileName(path)); + sk_sp<SkData> json(SkData::MakeFromFileName(path)); if (!json) { return false; } diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp index f4c8956b25..b6f061677c 100644 --- a/dm/DMSrcSink.cpp +++ b/dm/DMSrcSink.cpp @@ -97,11 +97,12 @@ bool BRDSrc::veto(SinkFlags flags) const { } static SkBitmapRegionDecoder* create_brd(Path path) { - SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(path.c_str())); + sk_sp<SkData> encoded(SkData::MakeFromFileName(path.c_str())); if (!encoded) { return NULL; } - return SkBitmapRegionDecoder::Create(encoded, SkBitmapRegionDecoder::kAndroidCodec_Strategy); + return SkBitmapRegionDecoder::Create(encoded.get(), + SkBitmapRegionDecoder::kAndroidCodec_Strategy); } Error BRDSrc::draw(SkCanvas* canvas) const { @@ -375,12 +376,12 @@ static void draw_to_canvas(SkCanvas* canvas, const SkImageInfo& info, void* pixe } Error CodecSrc::draw(SkCanvas* canvas) const { - SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(fPath.c_str())); + sk_sp<SkData> encoded(SkData::MakeFromFileName(fPath.c_str())); if (!encoded) { return SkStringPrintf("Couldn't read %s.", fPath.c_str()); } - SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded)); + SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded.get())); if (nullptr == codec.get()) { return SkStringPrintf("Couldn't create codec for %s.", fPath.c_str()); } @@ -627,8 +628,8 @@ Error CodecSrc::draw(SkCanvas* canvas) const { } SkISize CodecSrc::size() const { - SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(fPath.c_str())); - SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded)); + sk_sp<SkData> encoded(SkData::MakeFromFileName(fPath.c_str())); + SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded.get())); if (nullptr == codec) { return SkISize::Make(0, 0); } @@ -660,11 +661,11 @@ bool AndroidCodecSrc::veto(SinkFlags flags) const { } Error AndroidCodecSrc::draw(SkCanvas* canvas) const { - SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(fPath.c_str())); + sk_sp<SkData> encoded(SkData::MakeFromFileName(fPath.c_str())); if (!encoded) { return SkStringPrintf("Couldn't read %s.", fPath.c_str()); } - SkAutoTDelete<SkAndroidCodec> codec(SkAndroidCodec::NewFromData(encoded)); + SkAutoTDelete<SkAndroidCodec> codec(SkAndroidCodec::NewFromData(encoded.get())); if (nullptr == codec.get()) { return SkStringPrintf("Couldn't create android codec for %s.", fPath.c_str()); } @@ -716,8 +717,8 @@ Error AndroidCodecSrc::draw(SkCanvas* canvas) const { } SkISize AndroidCodecSrc::size() const { - SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(fPath.c_str())); - SkAutoTDelete<SkAndroidCodec> codec(SkAndroidCodec::NewFromData(encoded)); + sk_sp<SkData> encoded(SkData::MakeFromFileName(fPath.c_str())); + SkAutoTDelete<SkAndroidCodec> codec(SkAndroidCodec::NewFromData(encoded.get())); if (nullptr == codec) { return SkISize::Make(0, 0); } @@ -756,7 +757,7 @@ Error ImageGenSrc::draw(SkCanvas* canvas) const { return Error::Nonfatal("Uninteresting to test image generator to 565."); } - SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(fPath.c_str())); + sk_sp<SkData> encoded(SkData::MakeFromFileName(fPath.c_str())); if (!encoded) { return SkStringPrintf("Couldn't read %s.", fPath.c_str()); } @@ -772,16 +773,16 @@ Error ImageGenSrc::draw(SkCanvas* canvas) const { SkAutoTDelete<SkImageGenerator> gen(nullptr); switch (fMode) { case kCodec_Mode: - gen.reset(SkCodecImageGenerator::NewFromEncodedCodec(encoded)); + gen.reset(SkCodecImageGenerator::NewFromEncodedCodec(encoded.get())); if (!gen) { return "Could not create codec image generator."; } break; case kPlatform_Mode: { #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) - gen.reset(SkImageGeneratorCG::NewFromEncodedCG(encoded)); + gen.reset(SkImageGeneratorCG::NewFromEncodedCG(encoded.get())); #elif defined(SK_BUILD_FOR_WIN) - gen.reset(SkImageGeneratorWIC::NewFromEncodedWIC(encoded)); + gen.reset(SkImageGeneratorWIC::NewFromEncodedWIC(encoded.get())); #endif if (!gen) { @@ -823,8 +824,8 @@ Error ImageGenSrc::draw(SkCanvas* canvas) const { } SkISize ImageGenSrc::size() const { - SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(fPath.c_str())); - SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded)); + sk_sp<SkData> encoded(SkData::MakeFromFileName(fPath.c_str())); + SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded.get())); if (nullptr == codec) { return SkISize::Make(0, 0); } @@ -857,12 +858,12 @@ Error ColorCodecSrc::draw(SkCanvas* canvas) const { return Error::Nonfatal("F16 does not draw in legacy mode."); } - SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(fPath.c_str())); + sk_sp<SkData> encoded(SkData::MakeFromFileName(fPath.c_str())); if (!encoded) { return SkStringPrintf("Couldn't read %s.", fPath.c_str()); } - SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded)); + SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded.get())); if (nullptr == codec.get()) { return SkStringPrintf("Couldn't create codec for %s.", fPath.c_str()); } @@ -956,8 +957,8 @@ Error ColorCodecSrc::draw(SkCanvas* canvas) const { } SkISize ColorCodecSrc::size() const { - SkAutoTUnref<SkData> encoded(SkData::NewFromFileName(fPath.c_str())); - SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded)); + sk_sp<SkData> encoded(SkData::MakeFromFileName(fPath.c_str())); + SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(encoded.get())); if (nullptr == codec) { return SkISize::Make(0, 0); } diff --git a/experimental/GLFWTest/glfw_main.cpp b/experimental/GLFWTest/glfw_main.cpp index bf91760ac0..a8ca7ea97e 100644 --- a/experimental/GLFWTest/glfw_main.cpp +++ b/experimental/GLFWTest/glfw_main.cpp @@ -83,8 +83,8 @@ int main(void) { float times[32]; int currentTime; - SkAutoTUnref<SkData> imageData(SkData::NewFromFileName("ship.png")); - atlas.reset(SkImage::NewFromEncoded(imageData)); + sk_sp<SkData> imageData(SkData::MakeFromFileName("ship.png")); + atlas.reset(SkImage::NewFromEncoded(imageData.get())); if (!atlas) { SkDebugf("\nCould not decode file ship.png\n"); diff --git a/experimental/SkV8Example/SkV8Example.cpp b/experimental/SkV8Example/SkV8Example.cpp index 3882c3e9b3..5bfd64d6e2 100644 --- a/experimental/SkV8Example/SkV8Example.cpp +++ b/experimental/SkV8Example/SkV8Example.cpp @@ -200,9 +200,9 @@ SkOSWindow* create_sk_window(void* hwnd, int argc, char** argv) { " canvas.inval(); \n" "} \n"; - SkAutoTUnref<SkData> data; + sk_sp<SkData> data; if (FLAGS_infile.count()) { - data.reset(SkData::NewFromFileName(FLAGS_infile[0])); + data = SkData::MakeFromFileName(FLAGS_infile[0]); script = static_cast<const char*>(data->data()); } if (NULL == script) { diff --git a/experimental/nanomsg/picture_demo.cpp b/experimental/nanomsg/picture_demo.cpp index 859f20e96c..a0b83a2579 100644 --- a/experimental/nanomsg/picture_demo.cpp +++ b/experimental/nanomsg/picture_demo.cpp @@ -80,7 +80,7 @@ static sk_sp<SkPicture> recv_picture(int socket, PictureHeader* header) { static void client(const char* skpPath, const char* dataEndpoint) { // Read the .skp. - SkAutoTUnref<const SkData> skp(SkData::NewFromFileName(skpPath)); + sk_sp<SkData> skp(SkData::MakeFromFileName(skpPath)); if (!skp) { SkDebugf("Couldn't read %s\n", skpPath); exit(1); diff --git a/fuzz/fuzz.cpp b/fuzz/fuzz.cpp index 4ca253343d..d2dc787dbe 100644 --- a/fuzz/fuzz.cpp +++ b/fuzz/fuzz.cpp @@ -44,31 +44,31 @@ int main(int argc, char** argv) { SkCommandLineFlags::Parse(argc, argv); const char* path = FLAGS_bytes.isEmpty() ? argv[0] : FLAGS_bytes[0]; - SkAutoTUnref<SkData> bytes(SkData::NewFromFileName(path)); + sk_sp<SkData> bytes(SkData::MakeFromFileName(path)); if (!bytes) { SkDebugf("Could not read %s\n", path); return 2; } - uint8_t option = calculate_option(bytes); + uint8_t option = calculate_option(bytes.get()); if (!FLAGS_type.isEmpty()) { switch (FLAGS_type[0][0]) { - case 'a': return fuzz_api(bytes); + case 'a': return fuzz_api(bytes.get()); - case 'c': return fuzz_color_deserialize(bytes); + case 'c': return fuzz_color_deserialize(bytes.get()); case 'i': if (FLAGS_type[0][1] == 'c') { //icc - return fuzz_icc(bytes); + return fuzz_icc(bytes.get()); } // We only allow one degree of freedom to avoid a search space explosion for afl-fuzz. if (FLAGS_type[0][6] == 's') { // image_scale - return fuzz_img(bytes, option, 0); + return fuzz_img(bytes.get(), option, 0); } // image_mode - return fuzz_img(bytes, 0, option); - case 's': return fuzz_skp(bytes); + return fuzz_img(bytes.get(), 0, option); + case 's': return fuzz_skp(bytes.get()); } } return printUsage(argv[0]); diff --git a/gm/annotated_text.cpp b/gm/annotated_text.cpp index 30f67b0201..70ee9f3de1 100644 --- a/gm/annotated_text.cpp +++ b/gm/annotated_text.cpp @@ -16,8 +16,8 @@ static void draw_url_annotated_text_with_box( SkRect bounds; (void)paint.measureText(text, byteLength, &bounds); bounds.offset(x, y); - SkAutoTUnref<SkData> urlData(SkData::NewWithCString(url)); - SkAnnotateRectWithURL(canvas, bounds, urlData); + sk_sp<SkData> urlData(SkData::MakeWithCString(url)); + SkAnnotateRectWithURL(canvas, bounds, urlData.get()); SkPaint shade; shade.setColor(0x80346180); canvas->drawRect(bounds, shade); diff --git a/gm/factory.cpp b/gm/factory.cpp index 831cff0b9f..dfecd167f9 100644 --- a/gm/factory.cpp +++ b/gm/factory.cpp @@ -29,15 +29,15 @@ protected: void onOnceBeforeDraw() override { // Copyright-free file from http://openclipart.org/detail/29213/paper-plane-by-ddoo SkString pngFilename = GetResourcePath("plane.png"); - SkAutoDataUnref data(SkData::NewFromFileName(pngFilename.c_str())); - if (data.get()) { + sk_sp<SkData> data(SkData::MakeFromFileName(pngFilename.c_str())); + if (data) { // Create a cache which will boot the pixels out anytime the // bitmap is unlocked. SkAutoTUnref<SkDiscardableMemoryPool> pool( SkDiscardableMemoryPool::Create(1)); SkAssertResult(SkDEPRECATED_InstallDiscardablePixelRef( - SkImageGenerator::NewFromEncoded(data), - nullptr, &fBitmap, pool)); + SkImageGenerator::NewFromEncoded(data.get()), + nullptr, &fBitmap, pool)); } } diff --git a/gm/internal_links.cpp b/gm/internal_links.cpp index 995cd69d42..6d70c1ef98 100644 --- a/gm/internal_links.cpp +++ b/gm/internal_links.cpp @@ -32,7 +32,7 @@ protected: } virtual void onDraw(SkCanvas* canvas) { - SkAutoTUnref<SkData> name(SkData::NewWithCString("target-a")); + sk_sp<SkData> name(SkData::MakeWithCString("target-a")); canvas->save(); canvas->translate(SkIntToScalar(100), SkIntToScalar(100)); diff --git a/gyp/skia_for_android_framework_defines.gypi b/gyp/skia_for_android_framework_defines.gypi index 0a0f50f7a6..4446c586e1 100644 --- a/gyp/skia_for_android_framework_defines.gypi +++ b/gyp/skia_for_android_framework_defines.gypi @@ -30,6 +30,7 @@ 'SK_SUPPORT_LEGACY_XFERMODE_PTR', 'SK_SUPPORT_LEGACY_TYPEFACE_PTR', 'SK_IGNORE_GPU_DITHER', + 'SK_SUPPORT_LEGACY_DATA_FACTORIES', ], }, } diff --git a/include/core/SkData.h b/include/core/SkData.h index e34d861675..4306208f69 100644 --- a/include/core/SkData.h +++ b/include/core/SkData.h @@ -14,10 +14,6 @@ class SkStream; -#ifndef SK_SUPPORT_LEGACY_DATA_FACTORIES -#define SK_SUPPORT_LEGACY_DATA_FACTORIES -#endif - /** * SkData holds an immutable data buffer. Not only is the data immutable, * but the actual ptr that is returned (by data() or bytes()) is guaranteed @@ -71,7 +67,9 @@ public: * effectively returning 0 == memcmp(...) */ bool equals(const SkData* other) const; +#ifdef SK_SUPPORT_LEGACY_DATA_FACTORIES bool equals(sk_sp<const SkData>& other) const { return this->equals(other.get()); } +#endif /** * Function that, if provided, will be called when the SkData goes out diff --git a/include/gpu/GrResourceKey.h b/include/gpu/GrResourceKey.h index 9f8063d955..0ead35ea3f 100644 --- a/include/gpu/GrResourceKey.h +++ b/include/gpu/GrResourceKey.h @@ -238,7 +238,7 @@ public: GrUniqueKey& operator=(const GrUniqueKey& that) { this->INHERITED::operator=(that); - this->setCustomData(that.getCustomData()); + this->setCustomData(sk_ref_sp(that.getCustomData())); return *this; } @@ -247,11 +247,10 @@ public: } bool operator!=(const GrUniqueKey& that) const { return !(*this == that); } - void setCustomData(const SkData* data) { - SkSafeRef(data); - fData.reset(data); + void setCustomData(sk_sp<SkData> data) { + fData = std::move(data); } - const SkData* getCustomData() const { + SkData* getCustomData() const { return fData.get(); } @@ -280,7 +279,7 @@ public: }; private: - SkAutoTUnref<const SkData> fData; + sk_sp<SkData> fData; }; /** diff --git a/public.bzl b/public.bzl index cc83dcf401..573488814e 100644 --- a/public.bzl +++ b/public.bzl @@ -617,6 +617,7 @@ DEFINES_ALL = [ "SK_SUPPORT_LEGACY_PICTURE_PTR", "SK_SUPPORT_LEGACY_TYPEFACE_PTR", "SK_SUPPORT_LEGACY_XFERMODE_PTR", + "SK_SUPPORT_LEGACY_DATA_FACTORIES", ] ################################################################################ diff --git a/samplecode/DecodeFile.h b/samplecode/DecodeFile.h index 26d5d2dc26..3995238bd0 100644 --- a/samplecode/DecodeFile.h +++ b/samplecode/DecodeFile.h @@ -12,8 +12,8 @@ inline bool decode_file(const char* filename, SkBitmap* bitmap, SkColorType colorType = kN32_SkColorType, bool requireUnpremul = false) { SkASSERT(kIndex_8_SkColorType != colorType); - SkAutoTUnref<SkData> data(SkData::NewFromFileName(filename)); - SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(data)); + sk_sp<SkData> data(SkData::MakeFromFileName(filename)); + SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(data.get())); if (!codec) { return false; } diff --git a/samplecode/SampleLua.cpp b/samplecode/SampleLua.cpp index 96b15b91b8..4d492f488c 100644 --- a/samplecode/SampleLua.cpp +++ b/samplecode/SampleLua.cpp @@ -60,10 +60,9 @@ public: fLua = new SkLua; SkString str = GetResourcePath(LUA_FILENAME); - SkData* data = SkData::NewFromFileName(str.c_str()); + sk_sp<SkData> data(SkData::MakeFromFileName(str.c_str())); if (data) { fLua->runCode(data->data(), data->size()); - data->unref(); this->setImageFilename(fLua->get()); } else { fLua->runCode(gMissingCode); diff --git a/src/codec/SkIcoCodec.cpp b/src/codec/SkIcoCodec.cpp index 0e81b72407..45000b636f 100644 --- a/src/codec/SkIcoCodec.cpp +++ b/src/codec/SkIcoCodec.cpp @@ -128,13 +128,12 @@ SkCodec* SkIcoCodec::NewFromStream(SkStream* stream) { bytesRead = offset; // Create a new stream for the embedded codec - SkAutoTUnref<SkData> data( - SkData::NewFromStream(inputStream.get(), size)); + sk_sp<SkData> data(SkData::MakeFromStream(inputStream.get(), size)); if (nullptr == data.get()) { SkCodecPrintf("Warning: could not create embedded stream.\n"); break; } - SkAutoTDelete<SkMemoryStream> embeddedStream(new SkMemoryStream(data.get())); + SkAutoTDelete<SkMemoryStream> embeddedStream(new SkMemoryStream(data)); bytesRead += size; // Check if the embedded codec is bmp or png and create the codec diff --git a/src/codec/SkRawCodec.cpp b/src/codec/SkRawCodec.cpp index 9c32e709d8..37d2d358ae 100644 --- a/src/codec/SkRawCodec.cpp +++ b/src/codec/SkRawCodec.cpp @@ -257,7 +257,7 @@ public: } SkMemoryStream* transferBuffer(size_t offset, size_t size) override { - SkAutoTUnref<SkData> data(SkData::NewUninitialized(size)); + sk_sp<SkData> data(SkData::MakeUninitialized(size)); if (offset > fStreamBuffer.bytesWritten()) { // If the offset is not buffered, read from fStream directly and skip the buffering. const size_t skipLength = offset - fStreamBuffer.bytesWritten(); @@ -266,7 +266,7 @@ public: } const size_t bytesRead = fStream->read(data->writable_data(), size); if (bytesRead < size) { - data.reset(SkData::NewSubset(data.get(), 0, bytesRead)); + data = SkData::MakeSubset(data.get(), 0, bytesRead); } } else { const size_t alreadyBuffered = SkTMin(fStreamBuffer.bytesWritten() - offset, size); @@ -284,7 +284,7 @@ public: if (!safe_add_to_size_t(alreadyBuffered, bytesRead, &newSize)) { return nullptr; } - data.reset(SkData::NewSubset(data.get(), 0, newSize)); + data = SkData::MakeSubset(data.get(), 0, newSize); } } } @@ -379,18 +379,18 @@ public: } if (fStream->getMemoryBase()) { // directly copy if getMemoryBase() is available. - SkAutoTUnref<SkData> data(SkData::NewWithCopy( + sk_sp<SkData> data(SkData::MakeWithCopy( static_cast<const uint8_t*>(fStream->getMemoryBase()) + offset, bytesToRead)); fStream.reset(); return new SkMemoryStream(data); } else { - SkAutoTUnref<SkData> data(SkData::NewUninitialized(bytesToRead)); + sk_sp<SkData> data(SkData::MakeUninitialized(bytesToRead)); if (!fStream->seek(offset)) { return nullptr; } const size_t bytesRead = fStream->read(data->writable_data(), bytesToRead); if (bytesRead < bytesToRead) { - data.reset(SkData::NewSubset(data.get(), 0, bytesRead)); + data = SkData::MakeSubset(data.get(), 0, bytesRead); } return new SkMemoryStream(data); } diff --git a/src/codec/SkWbmpCodec.cpp b/src/codec/SkWbmpCodec.cpp index 326fc2206a..099b6e472a 100644 --- a/src/codec/SkWbmpCodec.cpp +++ b/src/codec/SkWbmpCodec.cpp @@ -155,8 +155,7 @@ SkCodec::Result SkWbmpCodec::onGetPixels(const SkImageInfo& info, } bool SkWbmpCodec::IsWbmp(const void* buffer, size_t bytesRead) { - SkAutoTUnref<SkData> data(SkData::NewWithoutCopy(buffer, bytesRead)); - SkMemoryStream stream(data); + SkMemoryStream stream(buffer, bytesRead, false); return read_header(&stream, nullptr); } diff --git a/src/core/SkWriteBuffer.cpp b/src/core/SkWriteBuffer.cpp index ccf1f37dd8..e954399b09 100644 --- a/src/core/SkWriteBuffer.cpp +++ b/src/core/SkWriteBuffer.cpp @@ -144,13 +144,13 @@ void SkBinaryWriteBuffer::writeBitmap(const SkBitmap& bitmap) { SkPixelRef* pixelRef = bitmap.pixelRef(); if (pixelRef) { // see if the pixelref already has an encoded version - SkAutoDataUnref existingData(pixelRef->refEncodedData()); - if (existingData.get() != nullptr) { + sk_sp<SkData> existingData(pixelRef->refEncodedData()); + if (existingData) { // Assumes that if the client did not set a serializer, they are // happy to get the encoded data. if (!fPixelSerializer || fPixelSerializer->useEncodedData(existingData->data(), existingData->size())) { - write_encoded_bitmap(this, existingData, bitmap.pixelRefOrigin()); + write_encoded_bitmap(this, existingData.get(), bitmap.pixelRefOrigin()); return; } } @@ -158,11 +158,11 @@ void SkBinaryWriteBuffer::writeBitmap(const SkBitmap& bitmap) { // see if the caller wants to manually encode SkAutoPixmapUnlock result; if (fPixelSerializer && bitmap.requestLock(&result)) { - SkAutoDataUnref data(fPixelSerializer->encode(result.pixmap())); - if (data.get() != nullptr) { + sk_sp<SkData> data(fPixelSerializer->encode(result.pixmap())); + if (data) { // if we have to "encode" the bitmap, then we assume there is no // offset to share, since we are effectively creating a new pixelref - write_encoded_bitmap(this, data, SkIPoint::Make(0, 0)); + write_encoded_bitmap(this, data.get(), SkIPoint::Make(0, 0)); return; } } diff --git a/src/gpu/batches/GrTessellatingPathRenderer.cpp b/src/gpu/batches/GrTessellatingPathRenderer.cpp index 6dce9f73c8..b2c3138aed 100644 --- a/src/gpu/batches/GrTessellatingPathRenderer.cpp +++ b/src/gpu/batches/GrTessellatingPathRenderer.cpp @@ -187,8 +187,7 @@ private: TessInfo info; info.fTolerance = isLinear ? 0 : tol; info.fCount = count; - SkAutoTUnref<SkData> data(SkData::NewWithCopy(&info, sizeof(info))); - key.setCustomData(data.get()); + key.setCustomData(SkData::MakeWithCopy(&info, sizeof(info))); rp->assignUniqueKeyToResource(key, allocator.vertexBuffer()); } diff --git a/src/image/SkImage_Raster.cpp b/src/image/SkImage_Raster.cpp index 3282e7b7ed..192a4e03ec 100644 --- a/src/image/SkImage_Raster.cpp +++ b/src/image/SkImage_Raster.cpp @@ -214,7 +214,7 @@ sk_sp<SkImage> SkImage::MakeRasterCopy(const SkPixmap& pmap) { } // Here we actually make a copy of the caller's pixel data - sk_sp<SkData> data(SkData::NewWithCopy(pmap.addr(), size)); + sk_sp<SkData> data(SkData::MakeWithCopy(pmap.addr(), size)); return sk_make_sp<SkImage_Raster>(pmap.info(), std::move(data), pmap.rowBytes(), pmap.ctable()); } @@ -242,7 +242,7 @@ sk_sp<SkImage> SkImage::MakeFromRaster(const SkPixmap& pmap, RasterReleaseProc p return nullptr; } - sk_sp<SkData> data(SkData::NewWithProc(pmap.addr(), size, proc, ctx)); + sk_sp<SkData> data(SkData::MakeWithProc(pmap.addr(), size, proc, ctx)); return sk_make_sp<SkImage_Raster>(pmap.info(), std::move(data), pmap.rowBytes(), pmap.ctable()); } diff --git a/src/images/SkKTXImageEncoder.cpp b/src/images/SkKTXImageEncoder.cpp index 4b318a240c..078cec6b4d 100644 --- a/src/images/SkKTXImageEncoder.cpp +++ b/src/images/SkKTXImageEncoder.cpp @@ -46,13 +46,13 @@ bool SkKTXImageEncoder::onEncode(SkWStream* stream, const SkBitmap& bitmap, int) if (!bitmap.pixelRef()) { return false; } - SkAutoDataUnref data(bitmap.pixelRef()->refEncodedData()); + sk_sp<SkData> data(bitmap.pixelRef()->refEncodedData()); // Is this even encoded data? if (data) { const uint8_t *bytes = data->bytes(); if (etc1_pkm_is_valid(bytes)) { - return this->encodePKM(stream, data); + return this->encodePKM(stream, data.get()); } // Is it a KTX file?? diff --git a/src/pdf/SkPDFFont.cpp b/src/pdf/SkPDFFont.cpp index 2fc408efc7..0481963029 100644 --- a/src/pdf/SkPDFFont.cpp +++ b/src/pdf/SkPDFFont.cpp @@ -152,8 +152,8 @@ int8_t hexToBin(uint8_t c) { return -1; } -static SkData* handle_type1_stream(SkStream* srcStream, size_t* headerLen, - size_t* dataLen, size_t* trailerLen) { +static sk_sp<SkData> handle_type1_stream(SkStream* srcStream, size_t* headerLen, + size_t* dataLen, size_t* trailerLen) { // srcStream may be backed by a file or a unseekable fd, so we may not be // able to use skip(), rewind(), or getMemoryBase(). read()ing through // the input only once is doable, but very ugly. Furthermore, it'd be nice @@ -161,7 +161,7 @@ static SkData* handle_type1_stream(SkStream* srcStream, size_t* headerLen, // Make as few copies as possible given these constraints. SkDynamicMemoryWStream dynamicStream; std::unique_ptr<SkMemoryStream> staticStream; - SkData* data = nullptr; + sk_sp<SkData> data; const uint8_t* src; size_t srcLen; if ((srcLen = srcStream->getLength()) > 0) { @@ -191,22 +191,18 @@ static SkData* handle_type1_stream(SkStream* srcStream, size_t* headerLen, } amount = 0; dynamicStream.write(&amount, 1); // nullptr terminator. - data = dynamicStream.copyToData(); + data.reset(dynamicStream.copyToData()); src = data->bytes(); srcLen = data->size() - 1; } - // this handles releasing the data we may have gotten from dynamicStream. - // if data is null, it is a no-op - SkAutoDataUnref aud(data); - if (parsePFB(src, srcLen, headerLen, dataLen, trailerLen)) { static const int kPFBSectionHeaderLength = 6; const size_t length = *headerLen + *dataLen + *trailerLen; SkASSERT(length > 0); SkASSERT(length + (2 * kPFBSectionHeaderLength) <= srcLen); - SkData* data = SkData::NewUninitialized(length); + sk_sp<SkData> data(SkData::MakeUninitialized(length)); const uint8_t* const srcHeader = src + kPFBSectionHeaderLength; // There is a six-byte section header before header and data @@ -265,7 +261,7 @@ static SkData* handle_type1_stream(SkStream* srcStream, size_t* headerLen, uint8_t* const resultTrailer = &(buffer[SkToInt(*headerLen + outputOffset)]); memcpy(resultTrailer, src + *headerLen + hexDataLen, *trailerLen); - return SkData::NewFromMalloc(buffer.release(), length); + return SkData::MakeFromMalloc(buffer.release(), length); } return nullptr; } @@ -1191,8 +1187,7 @@ bool SkPDFType1Font::addFontDescriptor(int16_t defaultWidth) { if (!rawFontData || 0 == rawFontData->getLength()) { return false; } - sk_sp<SkData> fontData(handle_type1_stream(rawFontData.get(), &header, - &data, &trailer)); + sk_sp<SkData> fontData(handle_type1_stream(rawFontData.get(), &header, &data, &trailer)); if (fontData.get() == nullptr) { return false; } diff --git a/src/ports/SkFontMgr_android.cpp b/src/ports/SkFontMgr_android.cpp index 23c950d01d..94d114d07a 100644 --- a/src/ports/SkFontMgr_android.cpp +++ b/src/ports/SkFontMgr_android.cpp @@ -75,8 +75,8 @@ public: SkStreamAsset* createStream() const { if (fFile) { - SkData* data = SkData::NewFromFILE(fFile); - return data ? new SkMemoryStream(data) : nullptr; + sk_sp<SkData> data(SkData::MakeFromFILE(fFile)); + return data ? new SkMemoryStream(std::move(data)) : nullptr; } return SkStream::NewFromFile(fPathName.c_str()); } diff --git a/src/utils/SkTextureCompressor.cpp b/src/utils/SkTextureCompressor.cpp index 086214ec59..e9e4d2e826 100644 --- a/src/utils/SkTextureCompressor.cpp +++ b/src/utils/SkTextureCompressor.cpp @@ -145,19 +145,18 @@ bool CompressBufferToFormat(uint8_t* dst, const uint8_t* src, SkColorType srcCol return false; } -SkData* CompressBitmapToFormat(const SkPixmap& pixmap, Format format) { +sk_sp<SkData> CompressBitmapToFormat(const SkPixmap& pixmap, Format format) { int compressedDataSize = GetCompressedDataSize(format, pixmap.width(), pixmap.height()); if (compressedDataSize < 0) { return nullptr; } const uint8_t* src = reinterpret_cast<const uint8_t*>(pixmap.addr()); - SkData* dst = SkData::NewUninitialized(compressedDataSize); + sk_sp<SkData> dst(SkData::MakeUninitialized(compressedDataSize)); if (!CompressBufferToFormat((uint8_t*)dst->writable_data(), src, pixmap.colorType(), pixmap.width(), pixmap.height(), pixmap.rowBytes(), format)) { - dst->unref(); - dst = nullptr; + return nullptr; } return dst; } diff --git a/src/utils/SkTextureCompressor.h b/src/utils/SkTextureCompressor.h index d4d48967a3..1ae4aef132 100644 --- a/src/utils/SkTextureCompressor.h +++ b/src/utils/SkTextureCompressor.h @@ -56,9 +56,8 @@ namespace SkTextureCompressor { // Returns an SkData holding a blob of compressed data that corresponds // to the pixmap. If the pixmap colorType cannot be compressed using the - // associated format, then we return nullptr. The caller is responsible for - // calling unref() on the returned data. - SkData* CompressBitmapToFormat(const SkPixmap&, Format format); + // associated format, then we return nullptr. + sk_sp<SkData> CompressBitmapToFormat(const SkPixmap&, Format format); // Compresses the given src data into dst. The src data is assumed to be // large enough to hold width*height pixels. The dst data is expected to diff --git a/tests/AnnotationTest.cpp b/tests/AnnotationTest.cpp index 400d4887bd..a4109c5e54 100644 --- a/tests/AnnotationTest.cpp +++ b/tests/AnnotationTest.cpp @@ -31,7 +31,7 @@ DEF_TEST(Annotation_NoDraw, reporter) { SkCanvas canvas(bm); SkRect r = SkRect::MakeWH(SkIntToScalar(10), SkIntToScalar(10)); - SkAutoDataUnref data(SkData::NewWithCString("http://www.gooogle.com")); + sk_sp<SkData> data(SkData::MakeWithCString("http://www.gooogle.com")); REPORTER_ASSERT(reporter, 0 == *bm.getAddr32(0, 0)); SkAnnotateRectWithURL(&canvas, r, data.get()); @@ -47,11 +47,11 @@ DEF_TEST(Annotation_PdfLink, reporter) { SkRect r = SkRect::MakeXYWH(SkIntToScalar(72), SkIntToScalar(72), SkIntToScalar(288), SkIntToScalar(72)); - SkAutoDataUnref data(SkData::NewWithCString("http://www.gooogle.com")); + sk_sp<SkData> data(SkData::MakeWithCString("http://www.gooogle.com")); SkAnnotateRectWithURL(canvas, r, data.get()); REPORTER_ASSERT(reporter, doc->close()); - SkAutoDataUnref out(outStream.copyToData()); + sk_sp<SkData> out(outStream.copyToData()); const char* rawOutput = (const char*)out->data(); REPORTER_ASSERT(reporter, ContainsString(rawOutput, out->size(), "/Annots ")); @@ -65,11 +65,11 @@ DEF_TEST(Annotation_NamedDestination, reporter) { REPORTER_ASSERT(reporter, canvas); SkPoint p = SkPoint::Make(SkIntToScalar(72), SkIntToScalar(72)); - SkAutoDataUnref data(SkData::NewWithCString("example")); + sk_sp<SkData> data(SkData::MakeWithCString("example")); SkAnnotateNamedDestination(canvas, p, data.get()); REPORTER_ASSERT(reporter, doc->close()); - SkAutoDataUnref out(outStream.copyToData()); + sk_sp<SkData> out(outStream.copyToData()); const char* rawOutput = (const char*)out->data(); REPORTER_ASSERT(reporter, diff --git a/tests/CachedDecodingPixelRefTest.cpp b/tests/CachedDecodingPixelRefTest.cpp index da4a111b28..1c89895d0b 100644 --- a/tests/CachedDecodingPixelRefTest.cpp +++ b/tests/CachedDecodingPixelRefTest.cpp @@ -107,7 +107,7 @@ static void test_three_encodings(skiatest::Reporter* reporter, }; for (size_t i = 0; i < SK_ARRAY_COUNT(types); i++) { SkImageEncoder::Type type = types[i]; - SkAutoDataUnref encoded(create_data_from_bitmap(original, type)); + sk_sp<SkData> encoded(create_data_from_bitmap(original, type)); REPORTER_ASSERT(reporter, encoded.get() != nullptr); if (nullptr == encoded.get()) { continue; diff --git a/tests/CodecPriv.h b/tests/CodecPriv.h index 1123a41dc9..4e42731b01 100644 --- a/tests/CodecPriv.h +++ b/tests/CodecPriv.h @@ -10,7 +10,7 @@ #include "SkData.h" inline bool decode_memory(const void* mem, size_t size, SkBitmap* bm) { - SkAutoTUnref<SkData> data(SkData::NewWithoutCopy(mem, size)); + sk_sp<SkData> data(SkData::MakeWithoutCopy(mem, size)); SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(data.get())); if (!codec) { diff --git a/tests/CodecTest.cpp b/tests/CodecTest.cpp index b8b957fe55..7e1b594791 100644 --- a/tests/CodecTest.cpp +++ b/tests/CodecTest.cpp @@ -208,8 +208,8 @@ static void check(skiatest::Reporter* r, bool isIncomplete = supportsIncomplete; if (isIncomplete) { size_t size = stream->getLength(); - SkAutoTUnref<SkData> data((SkData::NewFromStream(stream, 2 * size / 3))); - codec.reset(SkCodec::NewFromData(data)); + sk_sp<SkData> data((SkData::MakeFromStream(stream, 2 * size / 3))); + codec.reset(SkCodec::NewFromData(data.get())); } else { codec.reset(SkCodec::NewFromStream(stream.release())); } @@ -337,8 +337,8 @@ static void check(skiatest::Reporter* r, SkAutoTDelete<SkAndroidCodec> androidCodec(nullptr); if (isIncomplete) { size_t size = stream->getLength(); - SkAutoTUnref<SkData> data((SkData::NewFromStream(stream, 2 * size / 3))); - androidCodec.reset(SkAndroidCodec::NewFromData(data)); + sk_sp<SkData> data((SkData::MakeFromStream(stream, 2 * size / 3))); + androidCodec.reset(SkAndroidCodec::NewFromData(data.get())); } else { androidCodec.reset(SkAndroidCodec::NewFromStream(stream.release())); } @@ -356,8 +356,9 @@ static void check(skiatest::Reporter* r, if (!isIncomplete) { // Test SkCodecImageGenerator SkAutoTDelete<SkStream> stream(resource(path)); - SkAutoTUnref<SkData> fullData(SkData::NewFromStream(stream, stream->getLength())); - SkAutoTDelete<SkImageGenerator> gen(SkCodecImageGenerator::NewFromEncodedCodec(fullData)); + sk_sp<SkData> fullData(SkData::MakeFromStream(stream, stream->getLength())); + SkAutoTDelete<SkImageGenerator> gen( + SkCodecImageGenerator::NewFromEncodedCodec(fullData.get())); SkBitmap bm; bm.allocPixels(info); SkAutoLockPixels autoLockPixels(bm); @@ -365,8 +366,8 @@ static void check(skiatest::Reporter* r, compare_to_good_digest(r, codecDigest, bm); // Test using SkFrontBufferedStream, as Android does - SkStream* bufferedStream = SkFrontBufferedStream::Create(new SkMemoryStream(fullData), - SkCodec::MinBufferedBytesNeeded()); + SkStream* bufferedStream = SkFrontBufferedStream::Create( + new SkMemoryStream(std::move(fullData)), SkCodec::MinBufferedBytesNeeded()); REPORTER_ASSERT(r, bufferedStream); codec.reset(SkCodec::NewFromStream(bufferedStream)); REPORTER_ASSERT(r, codec); @@ -887,7 +888,7 @@ private: // Stream that is not an asset stream (!hasPosition() or !hasLength()) class NotAssetMemStream : public SkStream { public: - NotAssetMemStream(SkData* data) : fStream(data) {} + NotAssetMemStream(sk_sp<SkData> data) : fStream(std::move(data)) {} bool hasPosition() const override { return false; @@ -920,13 +921,13 @@ private: DEF_TEST(Codec_raw_notseekable, r) { const char* path = "dng_with_preview.dng"; SkString fullPath(GetResourcePath(path)); - SkAutoTUnref<SkData> data(SkData::NewFromFileName(fullPath.c_str())); + sk_sp<SkData> data(SkData::MakeFromFileName(fullPath.c_str())); if (!data) { SkDebugf("Missing resource '%s'\n", path); return; } - SkAutoTDelete<SkCodec> codec(SkCodec::NewFromStream(new NotAssetMemStream(data))); + SkAutoTDelete<SkCodec> codec(SkCodec::NewFromStream(new NotAssetMemStream(std::move(data)))); REPORTER_ASSERT(r, codec); test_info(r, codec.get(), codec->getInfo(), SkCodec::kSuccess, nullptr); diff --git a/tests/DataRefTest.cpp b/tests/DataRefTest.cpp index 03f66c5b04..59b56fb362 100644 --- a/tests/DataRefTest.cpp +++ b/tests/DataRefTest.cpp @@ -149,11 +149,11 @@ static void delete_int_proc(const void* ptr, void* context) { delete[] data; } -static void assert_len(skiatest::Reporter* reporter, SkData* ref, size_t len) { +static void assert_len(skiatest::Reporter* reporter, const sk_sp<SkData>& ref, size_t len) { REPORTER_ASSERT(reporter, ref->size() == len); } -static void assert_data(skiatest::Reporter* reporter, SkData* ref, +static void assert_data(skiatest::Reporter* reporter, const sk_sp<SkData>& ref, const void* data, size_t len) { REPORTER_ASSERT(reporter, ref->size() == len); REPORTER_ASSERT(reporter, !memcmp(ref->data(), data, len)); @@ -163,12 +163,12 @@ static void test_cstring(skiatest::Reporter* reporter) { const char str[] = "Hello world"; size_t len = strlen(str); - SkAutoTUnref<SkData> r0(SkData::NewWithCopy(str, len + 1)); - SkAutoTUnref<SkData> r1(SkData::NewWithCString(str)); + sk_sp<SkData> r0(SkData::MakeWithCopy(str, len + 1)); + sk_sp<SkData> r1(SkData::MakeWithCString(str)); - REPORTER_ASSERT(reporter, r0->equals(r1)); + REPORTER_ASSERT(reporter, r0->equals(r1.get())); - SkAutoTUnref<SkData> r2(SkData::NewWithCString(nullptr)); + sk_sp<SkData> r2(SkData::MakeWithCString(nullptr)); REPORTER_ASSERT(reporter, 1 == r2->size()); REPORTER_ASSERT(reporter, 0 == *r2->bytes()); } @@ -192,13 +192,13 @@ static void test_files(skiatest::Reporter* reporter) { } FILE* file = sk_fopen(path.c_str(), kRead_SkFILE_Flag); - SkAutoTUnref<SkData> r1(SkData::NewFromFILE(file)); + sk_sp<SkData> r1(SkData::MakeFromFILE(file)); REPORTER_ASSERT(reporter, r1.get() != nullptr); REPORTER_ASSERT(reporter, r1->size() == 26); REPORTER_ASSERT(reporter, strncmp(static_cast<const char*>(r1->data()), s, 26) == 0); int fd = sk_fileno(file); - SkAutoTUnref<SkData> r2(SkData::NewFromFD(fd)); + sk_sp<SkData> r2(SkData::MakeFromFD(fd)); REPORTER_ASSERT(reporter, r2.get() != nullptr); REPORTER_ASSERT(reporter, r2->size() == 26); REPORTER_ASSERT(reporter, strncmp(static_cast<const char*>(r2->data()), s, 26) == 0); @@ -208,11 +208,10 @@ DEF_TEST(Data, reporter) { const char* str = "We the people, in order to form a more perfect union."; const int N = 10; - SkAutoTUnref<SkData> r0(SkData::NewEmpty()); - SkAutoTUnref<SkData> r1(SkData::NewWithCopy(str, strlen(str))); - SkAutoTUnref<SkData> r2(SkData::NewWithProc(new int[N], N*sizeof(int), - delete_int_proc, gGlobal)); - SkAutoTUnref<SkData> r3(SkData::NewSubset(r1, 7, 6)); + sk_sp<SkData> r0(SkData::MakeEmpty()); + sk_sp<SkData> r1(SkData::MakeWithCopy(str, strlen(str))); + sk_sp<SkData> r2(SkData::MakeWithProc(new int[N], N*sizeof(int), delete_int_proc, gGlobal)); + sk_sp<SkData> r3(SkData::MakeSubset(r1.get(), 7, 6)); assert_len(reporter, r0, 0); assert_len(reporter, r1, strlen(str)); @@ -222,12 +221,10 @@ DEF_TEST(Data, reporter) { assert_data(reporter, r1, str, strlen(str)); assert_data(reporter, r3, "people", 6); - SkData* tmp = SkData::NewSubset(r1, strlen(str), 10); + sk_sp<SkData> tmp(SkData::MakeSubset(r1.get(), strlen(str), 10)); assert_len(reporter, tmp, 0); - tmp->unref(); - tmp = SkData::NewSubset(r1, 0, 0); + tmp = SkData::MakeSubset(r1.get(), 0, 0); assert_len(reporter, tmp, 0); - tmp->unref(); test_cstring(reporter); test_files(reporter); diff --git a/tests/ImageGeneratorTest.cpp b/tests/ImageGeneratorTest.cpp index 3d750b2c73..63a47e46b1 100644 --- a/tests/ImageGeneratorTest.cpp +++ b/tests/ImageGeneratorTest.cpp @@ -19,21 +19,21 @@ static SkImageGenerator* my_factory(SkData*) { static void test_imagegenerator_factory(skiatest::Reporter* reporter) { // just need a non-empty data to test things - SkAutoTUnref<SkData> data(SkData::NewWithCString("test_imagegenerator_factory")); + sk_sp<SkData> data(SkData::MakeWithCString("test_imagegenerator_factory")); gMyFactoryWasCalled = false; SkImageGenerator* gen; REPORTER_ASSERT(reporter, !gMyFactoryWasCalled); - gen = SkImageGenerator::NewFromEncoded(data); + gen = SkImageGenerator::NewFromEncoded(data.get()); REPORTER_ASSERT(reporter, nullptr == gen); REPORTER_ASSERT(reporter, !gMyFactoryWasCalled); // Test is racy, in that it hopes no other thread is changing this global... SkGraphics::ImageGeneratorFromEncodedFactory prev = SkGraphics::SetImageGeneratorFromEncodedFactory(my_factory); - gen = SkImageGenerator::NewFromEncoded(data); + gen = SkImageGenerator::NewFromEncoded(data.get()); REPORTER_ASSERT(reporter, nullptr == gen); REPORTER_ASSERT(reporter, gMyFactoryWasCalled); SkGraphics::SetImageGeneratorFromEncodedFactory(prev); diff --git a/tests/ImageTest.cpp b/tests/ImageTest.cpp index 72dc9432e3..4f77fbdf1e 100644 --- a/tests/ImageTest.cpp +++ b/tests/ImageTest.cpp @@ -73,22 +73,22 @@ static sk_sp<SkImage> create_image() { draw_image_test_pattern(surface->getCanvas()); return surface->makeImageSnapshot(); } -static SkData* create_image_data(SkImageInfo* info) { +static sk_sp<SkData> create_image_data(SkImageInfo* info) { *info = SkImageInfo::MakeN32(20, 20, kOpaque_SkAlphaType); const size_t rowBytes = info->minRowBytes(); - SkAutoTUnref<SkData> data(SkData::NewUninitialized(rowBytes * info->height())); + sk_sp<SkData> data(SkData::MakeUninitialized(rowBytes * info->height())); { SkBitmap bm; bm.installPixels(*info, data->writable_data(), rowBytes); SkCanvas canvas(bm); draw_image_test_pattern(&canvas); } - return data.release(); + return data; } static sk_sp<SkImage> create_data_image() { SkImageInfo info; sk_sp<SkData> data(create_image_data(&info)); - return SkImage::MakeRasterData(info, data, info.minRowBytes()); + return SkImage::MakeRasterData(info, std::move(data), info.minRowBytes()); } #if SK_SUPPORT_GPU // not gpu-specific but currently only used in GPU tests static sk_sp<SkImage> create_image_565() { @@ -134,7 +134,7 @@ static sk_sp<SkImage> create_picture_image() { // Want to ensure that our Release is called when the owning image is destroyed struct RasterDataHolder { RasterDataHolder() : fReleaseCount(0) {} - SkAutoTUnref<SkData> fData; + sk_sp<SkData> fData; int fReleaseCount; static void Release(const void* pixels, void* context) { RasterDataHolder* self = static_cast<RasterDataHolder*>(context); @@ -145,19 +145,17 @@ struct RasterDataHolder { static sk_sp<SkImage> create_rasterproc_image(RasterDataHolder* dataHolder) { SkASSERT(dataHolder); SkImageInfo info; - SkAutoTUnref<SkData> data(create_image_data(&info)); - dataHolder->fData.reset(SkRef(data.get())); - return SkImage::MakeFromRaster(SkPixmap(info, data->data(), info.minRowBytes()), + dataHolder->fData = create_image_data(&info); + return SkImage::MakeFromRaster(SkPixmap(info, dataHolder->fData->data(), info.minRowBytes()), RasterDataHolder::Release, dataHolder); } static sk_sp<SkImage> create_codec_image() { SkImageInfo info; - SkAutoTUnref<SkData> data(create_image_data(&info)); + sk_sp<SkData> data(create_image_data(&info)); SkBitmap bitmap; bitmap.installPixels(info, data->writable_data(), info.minRowBytes()); - sk_sp<SkData> src( - SkImageEncoder::EncodeData(bitmap, SkImageEncoder::kPNG_Type, 100)); - return SkImage::MakeFromEncoded(src); + sk_sp<SkData> src(SkImageEncoder::EncodeData(bitmap, SkImageEncoder::kPNG_Type, 100)); + return SkImage::MakeFromEncoded(std::move(src)); } #if SK_SUPPORT_GPU static sk_sp<SkImage> create_gpu_image(GrContext* context) { @@ -231,7 +229,7 @@ const char* kSerializedData = "serialized"; class MockSerializer : public SkPixelSerializer { public: - MockSerializer(SkData* (*func)()) : fFunc(func), fDidEncode(false) { } + MockSerializer(sk_sp<SkData> (*func)()) : fFunc(func), fDidEncode(false) { } bool didEncode() const { return fDidEncode; } @@ -242,11 +240,11 @@ protected: SkData* onEncode(const SkPixmap&) override { fDidEncode = true; - return fFunc(); + return fFunc().release(); } private: - SkData* (*fFunc)(); + sk_sp<SkData> (*fFunc)(); bool fDidEncode; typedef SkPixelSerializer INHERITED; @@ -256,15 +254,17 @@ private: // Test that SkImage encoding observes custom pixel serializers. DEF_TEST(Image_Encode_Serializer, reporter) { - MockSerializer serializer([]() -> SkData* { return SkData::NewWithCString(kSerializedData); }); + MockSerializer serializer([]() -> sk_sp<SkData> { + return SkData::MakeWithCString(kSerializedData); + }); sk_sp<SkImage> image(create_image()); - SkAutoTUnref<SkData> encoded(image->encode(&serializer)); - SkAutoTUnref<SkData> reference(SkData::NewWithCString(kSerializedData)); + sk_sp<SkData> encoded(image->encode(&serializer)); + sk_sp<SkData> reference(SkData::MakeWithCString(kSerializedData)); REPORTER_ASSERT(reporter, serializer.didEncode()); REPORTER_ASSERT(reporter, encoded); REPORTER_ASSERT(reporter, encoded->size() > 0); - REPORTER_ASSERT(reporter, encoded->equals(reference)); + REPORTER_ASSERT(reporter, encoded->equals(reference.get())); } // Test that image encoding failures do not break picture serialization/deserialization. @@ -281,8 +281,8 @@ DEF_TEST(Image_Serialize_Encoding_Failure, reporter) { REPORTER_ASSERT(reporter, picture); REPORTER_ASSERT(reporter, picture->approximateOpCount() > 0); - MockSerializer emptySerializer([]() -> SkData* { return SkData::NewEmpty(); }); - MockSerializer nullSerializer([]() -> SkData* { return nullptr; }); + MockSerializer emptySerializer([]() -> sk_sp<SkData> { return SkData::MakeEmpty(); }); + MockSerializer nullSerializer([]() -> sk_sp<SkData> { return nullptr; }); MockSerializer* serializers[] = { &emptySerializer, &nullSerializer }; for (size_t i = 0; i < SK_ARRAY_COUNT(serializers); ++i) { diff --git a/tests/MallocPixelRefTest.cpp b/tests/MallocPixelRefTest.cpp index 2e6c07d103..adc69148b0 100644 --- a/tests/MallocPixelRefTest.cpp +++ b/tests/MallocPixelRefTest.cpp @@ -32,18 +32,18 @@ DEF_TEST(MallocPixelRef, reporter) { { size_t rowBytes = info.minRowBytes() - 1; size_t size = info.getSafeSize(rowBytes); - SkAutoDataUnref data(SkData::NewUninitialized(size)); + sk_sp<SkData> data(SkData::MakeUninitialized(size)); SkAutoTUnref<SkMallocPixelRef> pr( - SkMallocPixelRef::NewWithData(info, rowBytes, nullptr, data)); + SkMallocPixelRef::NewWithData(info, rowBytes, nullptr, data.get())); // rowbytes too small. REPORTER_ASSERT(reporter, nullptr == pr.get()); } { size_t rowBytes = info.minRowBytes() + 2; size_t size = info.getSafeSize(rowBytes) - 1; - SkAutoDataUnref data(SkData::NewUninitialized(size)); + sk_sp<SkData> data(SkData::MakeUninitialized(size)); SkAutoTUnref<SkMallocPixelRef> pr( - SkMallocPixelRef::NewWithData(info, rowBytes, nullptr, data)); + SkMallocPixelRef::NewWithData(info, rowBytes, nullptr, data.get())); // data too small. REPORTER_ASSERT(reporter, nullptr == pr.get()); } @@ -93,7 +93,7 @@ DEF_TEST(MallocPixelRef, reporter) { REPORTER_ASSERT(reporter, addr == pr->pixels()); } { - SkAutoDataUnref data(SkData::NewUninitialized(size)); + sk_sp<SkData> data(SkData::MakeUninitialized(size)); SkData* dataPtr = data.get(); REPORTER_ASSERT(reporter, dataPtr->unique()); SkAutoTUnref<SkMallocPixelRef> pr( diff --git a/tests/PDFGlyphsToUnicodeTest.cpp b/tests/PDFGlyphsToUnicodeTest.cpp index 529c97233c..f0425d94fc 100644 --- a/tests/PDFGlyphsToUnicodeTest.cpp +++ b/tests/PDFGlyphsToUnicodeTest.cpp @@ -13,7 +13,7 @@ static bool stream_equals(const SkDynamicMemoryWStream& stream, size_t offset, const char* buffer, size_t len) { - SkAutoDataUnref data(stream.copyToData()); + sk_sp<SkData> data(stream.copyToData()); if (offset + len > data->size()) { return false; } diff --git a/tests/PDFJpegEmbedTest.cpp b/tests/PDFJpegEmbedTest.cpp index 5ef4a2dbfc..6b10f04932 100644 --- a/tests/PDFJpegEmbedTest.cpp +++ b/tests/PDFJpegEmbedTest.cpp @@ -38,10 +38,10 @@ static bool is_subset_of(SkData* smaller, SkData* larger) { } -static SkData* load_resource( +static sk_sp<SkData> load_resource( skiatest::Reporter* r, const char* test, const char* filename) { SkString path(GetResourcePath(filename)); - SkData* data = SkData::NewFromFileName(path.c_str()); + sk_sp<SkData> data(SkData::MakeFromFileName(path.c_str())); if (!data) { INFOF(r, "\n%s: Resource '%s' can not be found.\n", test, filename); @@ -124,13 +124,12 @@ DEF_TEST(JpegIdentification, r) { {"mandrill_512_q075.jpg", true, SkJFIFInfo::kYCbCr}, {"randPixels.jpg", true, SkJFIFInfo::kYCbCr}}; for (size_t i = 0; i < SK_ARRAY_COUNT(kTests); ++i) { - SkAutoTUnref<SkData> data( - load_resource(r, "JpegIdentification", kTests[i].path)); + sk_sp<SkData> data(load_resource(r, "JpegIdentification", kTests[i].path)); if (!data) { continue; } SkJFIFInfo info; - bool isJfif = SkIsJFIF(data, &info); + bool isJfif = SkIsJFIF(data.get(), &info); if (isJfif != kTests[i].isJfif) { ERRORF(r, "%s failed isJfif test", kTests[i].path); continue; diff --git a/tests/PDFPrimitivesTest.cpp b/tests/PDFPrimitivesTest.cpp index 2ee90b98bd..6d89dd1585 100644 --- a/tests/PDFPrimitivesTest.cpp +++ b/tests/PDFPrimitivesTest.cpp @@ -112,7 +112,7 @@ static void TestPDFStream(skiatest::Reporter* reporter) { compressedByteStream.writeToStream(&expected); compressedByteStream.reset(); expected.writeText("\nendstream"); - SkAutoDataUnref expectedResultData2(expected.copyToData()); + sk_sp<SkData> expectedResultData2(expected.copyToData()); SkString result = emit_to_string(*stream); assert_eql(reporter, result, diff --git a/tests/PathTest.cpp b/tests/PathTest.cpp index cb330c58fe..c76276080c 100644 --- a/tests/PathTest.cpp +++ b/tests/PathTest.cpp @@ -4036,7 +4036,7 @@ static void compare_dump(skiatest::Reporter* reporter, const SkPath& path, bool bool dumpAsHex, const char* str) { SkDynamicMemoryWStream wStream; path.dump(&wStream, force, dumpAsHex); - SkAutoDataUnref data(wStream.copyToData()); + sk_sp<SkData> data(wStream.copyToData()); REPORTER_ASSERT(reporter, data->size() == strlen(str)); if (strlen(str) > 0) { REPORTER_ASSERT(reporter, !memcmp(data->data(), str, strlen(str))); diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp index 8f5ebd3f3b..749bd6e3d4 100644 --- a/tests/PictureTest.cpp +++ b/tests/PictureTest.cpp @@ -621,7 +621,7 @@ static void test_bad_bitmap() { } #endif -static SkData* serialized_picture_from_bitmap(const SkBitmap& bitmap) { +static sk_sp<SkData> serialized_picture_from_bitmap(const SkBitmap& bitmap) { SkPictureRecorder recorder; SkCanvas* canvas = recorder.beginRecording(SkIntToScalar(bitmap.width()), SkIntToScalar(bitmap.height())); @@ -632,7 +632,7 @@ static SkData* serialized_picture_from_bitmap(const SkBitmap& bitmap) { SkAutoTUnref<SkPixelSerializer> serializer( SkImageEncoder::CreatePixelSerializer()); picture->serialize(&wStream, serializer); - return wStream.copyToData(); + return sk_sp<SkData>(wStream.copyToData()); } struct ErrorContext { @@ -670,18 +670,18 @@ DEF_TEST(Picture_EncodedData, reporter) { if (!SkImageEncoder::EncodeStream(&wStream, original, SkImageEncoder::kPNG_Type, 100)) { return; } - SkAutoDataUnref data(wStream.copyToData()); + sk_sp<SkData> data(wStream.copyToData()); SkBitmap bm; - bool installSuccess = SkDEPRECATED_InstallDiscardablePixelRef(data, &bm); + bool installSuccess = SkDEPRECATED_InstallDiscardablePixelRef(data.get(), &bm); REPORTER_ASSERT(reporter, installSuccess); // Write both bitmaps to pictures, and ensure that the resulting data streams are the same. // Flattening original will follow the old path of performing an encode, while flattening bm // will use the already encoded data. - SkAutoDataUnref picture1(serialized_picture_from_bitmap(original)); - SkAutoDataUnref picture2(serialized_picture_from_bitmap(bm)); - REPORTER_ASSERT(reporter, picture1->equals(picture2)); + sk_sp<SkData> picture1(serialized_picture_from_bitmap(original)); + sk_sp<SkData> picture2(serialized_picture_from_bitmap(bm)); + REPORTER_ASSERT(reporter, picture1->equals(picture2.get())); // Now test that a parse error was generated when trying to create a new SkPicture without // providing a function to decode the bitmap. @@ -689,7 +689,7 @@ DEF_TEST(Picture_EncodedData, reporter) { context.fErrors = 0; context.fReporter = reporter; SkSetErrorCallback(assert_one_parse_error_cb, &context); - SkMemoryStream pictureStream(picture1); + SkMemoryStream pictureStream(std::move(picture1)); SkClearLastError(); sk_sp<SkPicture> pictureFromStream(SkPicture::MakeFromStream(&pictureStream, nullptr)); REPORTER_ASSERT(reporter, pictureFromStream.get() != nullptr); diff --git a/tests/ResourceCacheTest.cpp b/tests/ResourceCacheTest.cpp index bd2bb2f094..289fdd9eb8 100644 --- a/tests/ResourceCacheTest.cpp +++ b/tests/ResourceCacheTest.cpp @@ -871,8 +871,7 @@ static void test_duplicate_unique_key(skiatest::Reporter* reporter) { make_unique_key<0>(&key2, 0); SkAutoTUnref<TestResource> d(new TestResource(context->getGpu())); int foo = 4132; - SkAutoTUnref<SkData> data(SkData::NewWithCopy(&foo, sizeof(foo))); - key2.setCustomData(data.get()); + key2.setCustomData(SkData::MakeWithCopy(&foo, sizeof(foo))); d->resourcePriv().setUniqueKey(key2); } @@ -1262,8 +1261,7 @@ static void test_custom_data(skiatest::Reporter* reporter) { make_unique_key<0>(&key1, 1); make_unique_key<0>(&key2, 2); int foo = 4132; - SkAutoTUnref<SkData> data(SkData::NewWithCopy(&foo, sizeof(foo))); - key1.setCustomData(data.get()); + key1.setCustomData(SkData::MakeWithCopy(&foo, sizeof(foo))); REPORTER_ASSERT(reporter, *(int*) key1.getCustomData()->data() == 4132); REPORTER_ASSERT(reporter, key2.getCustomData() == nullptr); @@ -1283,7 +1281,7 @@ static void test_abandoned(skiatest::Reporter* reporter) { // Call all the public methods on resource in the abandoned state. They shouldn't crash. int foo = 4132; - SkAutoTUnref<SkData> data(SkData::NewWithCopy(&foo, sizeof(foo))); + sk_sp<SkData> data(SkData::MakeWithCopy(&foo, sizeof(foo))); resource->setCustomData(data.get()); resource->getCustomData(); resource->getUniqueID(); diff --git a/tests/SerializationTest.cpp b/tests/SerializationTest.cpp index a6be1889a5..0e53ac6009 100644 --- a/tests/SerializationTest.cpp +++ b/tests/SerializationTest.cpp @@ -634,7 +634,7 @@ static sk_sp<SkPicture> copy_picture_via_serialization(SkPicture* src) { struct AnnotationRec { const SkRect fRect; const char* fKey; - SkData* fValue; + sk_sp<SkData> fValue; }; class TestAnnotationCanvas : public SkCanvas { @@ -661,7 +661,7 @@ protected: REPORTER_ASSERT(fReporter, fCurrIndex < fCount); REPORTER_ASSERT(fReporter, rect == fRec[fCurrIndex].fRect); REPORTER_ASSERT(fReporter, !strcmp(key, fRec[fCurrIndex].fKey)); - REPORTER_ASSERT(fReporter, value->equals(fRec[fCurrIndex].fValue)); + REPORTER_ASSERT(fReporter, value->equals(fRec[fCurrIndex].fValue.get())); fCurrIndex += 1; } }; @@ -676,23 +676,23 @@ DEF_TEST(Annotations, reporter) { const char* str0 = "rect-with-url"; const SkRect r0 = SkRect::MakeWH(10, 10); - SkAutoTUnref<SkData> d0(SkData::NewWithCString(str0)); - SkAnnotateRectWithURL(recordingCanvas, r0, d0); + sk_sp<SkData> d0(SkData::MakeWithCString(str0)); + SkAnnotateRectWithURL(recordingCanvas, r0, d0.get()); const char* str1 = "named-destination"; const SkRect r1 = SkRect::MakeXYWH(5, 5, 0, 0); // collapsed to a point - SkAutoTUnref<SkData> d1(SkData::NewWithCString(str1)); - SkAnnotateNamedDestination(recordingCanvas, {r1.x(), r1.y()}, d1); + sk_sp<SkData> d1(SkData::MakeWithCString(str1)); + SkAnnotateNamedDestination(recordingCanvas, {r1.x(), r1.y()}, d1.get()); const char* str2 = "link-to-destination"; const SkRect r2 = SkRect::MakeXYWH(20, 20, 5, 6); - SkAutoTUnref<SkData> d2(SkData::NewWithCString(str2)); - SkAnnotateLinkToDestination(recordingCanvas, r2, d2); + sk_sp<SkData> d2(SkData::MakeWithCString(str2)); + SkAnnotateLinkToDestination(recordingCanvas, r2, d2.get()); const AnnotationRec recs[] = { - { r0, SkAnnotationKeys::URL_Key(), d0 }, - { r1, SkAnnotationKeys::Define_Named_Dest_Key(), d1 }, - { r2, SkAnnotationKeys::Link_Named_Dest_Key(), d2 }, + { r0, SkAnnotationKeys::URL_Key(), std::move(d0) }, + { r1, SkAnnotationKeys::Define_Named_Dest_Key(), std::move(d1) }, + { r2, SkAnnotationKeys::Link_Named_Dest_Key(), std::move(d2) }, }; sk_sp<SkPicture> pict0(recorder.finishRecordingAsPicture()); diff --git a/tests/StreamTest.cpp b/tests/StreamTest.cpp index fe4da0f5fb..50523ff317 100644 --- a/tests/StreamTest.cpp +++ b/tests/StreamTest.cpp @@ -174,7 +174,7 @@ static void TestPackedUInt(skiatest::Reporter* reporter) { static void TestDereferencingData(SkMemoryStream* memStream) { memStream->read(nullptr, 0); memStream->getMemoryBase(); - SkAutoDataUnref data(memStream->copyToData()); + sk_sp<SkData> data(memStream->copyToData()); } static void TestNullData() { @@ -361,7 +361,7 @@ DEF_TEST(StreamPeek_BlockMemoryStream, rep) { dynamicMemoryWStream.write(buffer, size); } SkAutoTDelete<SkStreamAsset> asset(dynamicMemoryWStream.detachAsStream()); - SkAutoTUnref<SkData> expected(SkData::NewUninitialized(asset->getLength())); + sk_sp<SkData> expected(SkData::MakeUninitialized(asset->getLength())); uint8_t* expectedPtr = static_cast<uint8_t*>(expected->writable_data()); valueSource.setSeed(kSeed); // reseed. // We want the exact same same "random" string of numbers to put @@ -370,7 +370,7 @@ DEF_TEST(StreamPeek_BlockMemoryStream, rep) { for (size_t i = 0; i < asset->getLength(); ++i) { expectedPtr[i] = valueSource.nextU() & 0xFF; } - stream_peek_test(rep, asset, expected); + stream_peek_test(rep, asset, expected.get()); } namespace { diff --git a/tests/TextureCompressionTest.cpp b/tests/TextureCompressionTest.cpp index e1992a0359..06be9cefec 100644 --- a/tests/TextureCompressionTest.cpp +++ b/tests/TextureCompressionTest.cpp @@ -64,7 +64,7 @@ DEF_TEST(CompressAlphaFailDimensions, reporter) { if (!compresses_a8(fmt)) { continue; } - SkAutoDataUnref data(SkTextureCompressor::CompressBitmapToFormat(pixmap, fmt)); + sk_sp<SkData> data(SkTextureCompressor::CompressBitmapToFormat(pixmap, fmt)); REPORTER_ASSERT(reporter, nullptr == data); } } @@ -93,7 +93,7 @@ DEF_TEST(CompressAlphaFailColorType, reporter) { if (!compresses_a8(fmt)) { continue; } - SkAutoDataUnref data(SkTextureCompressor::CompressBitmapToFormat(pixmap, fmt)); + sk_sp<SkData> data(SkTextureCompressor::CompressBitmapToFormat(pixmap, fmt)); REPORTER_ASSERT(reporter, nullptr == data); } } @@ -154,7 +154,7 @@ DEF_TEST(CompressCheckerboard, reporter) { continue; } - SkAutoDataUnref data(SkTextureCompressor::CompressBitmapToFormat(pixmap, fmt)); + sk_sp<SkData> data(SkTextureCompressor::CompressBitmapToFormat(pixmap, fmt)); REPORTER_ASSERT(reporter, data); if (nullptr == data) { continue; @@ -212,7 +212,7 @@ DEF_TEST(CompressLATC, reporter) { pixels[i] = lum; } - SkAutoDataUnref latcData( + sk_sp<SkData> latcData( SkTextureCompressor::CompressBitmapToFormat(pixmap, kLATCFormat)); REPORTER_ASSERT(reporter, latcData); if (nullptr == latcData) { diff --git a/tests/Writer32Test.cpp b/tests/Writer32Test.cpp index ac932e1d29..3eab94cd2d 100644 --- a/tests/Writer32Test.cpp +++ b/tests/Writer32Test.cpp @@ -267,13 +267,13 @@ DEF_TEST(Writer32_misc, reporter) { DEF_TEST(Writer32_data, reporter) { const char* str = "0123456789"; - SkAutoTUnref<SkData> data0(SkData::NewWithCString(str)); - SkAutoTUnref<SkData> data1(SkData::NewEmpty()); + sk_sp<SkData> data0(SkData::MakeWithCString(str)); + sk_sp<SkData> data1(SkData::MakeEmpty()); const size_t sizes[] = { SkWriter32::WriteDataSize(nullptr), - SkWriter32::WriteDataSize(data0), - SkWriter32::WriteDataSize(data1), + SkWriter32::WriteDataSize(data0.get()), + SkWriter32::WriteDataSize(data1.get()), }; SkSWriter32<1000> writer; @@ -283,11 +283,11 @@ DEF_TEST(Writer32_data, reporter) { sizeWritten += sizes[0]; REPORTER_ASSERT(reporter, sizeWritten == writer.bytesWritten()); - writer.writeData(data0); + writer.writeData(data0.get()); sizeWritten += sizes[1]; REPORTER_ASSERT(reporter, sizeWritten == writer.bytesWritten()); - writer.writeData(data1); + writer.writeData(data1.get()); sizeWritten += sizes[2]; REPORTER_ASSERT(reporter, sizeWritten == writer.bytesWritten()); diff --git a/tools/Resources.cpp b/tools/Resources.cpp index 6d3054ab33..899f5d2bc4 100644 --- a/tools/Resources.cpp +++ b/tools/Resources.cpp @@ -27,14 +27,14 @@ void SetResourcePath(const char* resource) { bool GetResourceAsBitmap(const char* resource, SkBitmap* dst) { SkString resourcePath = GetResourcePath(resource); - SkAutoTUnref<SkData> resourceData(SkData::NewFromFileName(resourcePath.c_str())); - SkAutoTDelete<SkImageGenerator> gen(SkImageGenerator::NewFromEncoded(resourceData)); + sk_sp<SkData> resourceData(SkData::MakeFromFileName(resourcePath.c_str())); + SkAutoTDelete<SkImageGenerator> gen(SkImageGenerator::NewFromEncoded(resourceData.get())); return gen && gen->tryGenerateBitmap(dst); } sk_sp<SkImage> GetResourceAsImage(const char* resource) { SkString path = GetResourcePath(resource); - sk_sp<SkData> resourceData(SkData::NewFromFileName(path.c_str())); + sk_sp<SkData> resourceData(SkData::MakeFromFileName(path.c_str())); return SkImage::MakeFromEncoded(resourceData); } diff --git a/tools/debugger/SkDrawCommand.cpp b/tools/debugger/SkDrawCommand.cpp index 51eb96706a..362325085c 100644 --- a/tools/debugger/SkDrawCommand.cpp +++ b/tools/debugger/SkDrawCommand.cpp @@ -609,8 +609,8 @@ static void store_bool(Json::Value* target, const char* key, bool value, bool de static void encode_data(const void* bytes, size_t count, const char* contentType, UrlDataManager& urlDataManager, Json::Value* target) { - SkAutoTUnref<SkData> data(SkData::NewWithCopy(bytes, count)); - SkString url = urlDataManager.addData(data, contentType); + sk_sp<SkData> data(SkData::MakeWithCopy(bytes, count)); + SkString url = urlDataManager.addData(data.get(), contentType); *target = Json::Value(url.c_str()); } @@ -821,7 +821,7 @@ static SkBitmap* load_bitmap(const Json::Value& jsonBitmap, UrlDataManager& urlD } const void* data; int size = decode_data(jsonBitmap[SKDEBUGCANVAS_ATTRIBUTE_DATA], urlDataManager, &data); - sk_sp<SkData> encoded(SkData::NewWithoutCopy(data, size)); + sk_sp<SkData> encoded(SkData::MakeWithoutCopy(data, size)); sk_sp<SkImage> image(SkImage::MakeFromEncoded(std::move(encoded), nullptr)); SkAutoTDelete<SkBitmap> bitmap(new SkBitmap()); diff --git a/tools/fiddle/fiddle_main.cpp b/tools/fiddle/fiddle_main.cpp index df2e8ff66e..49ce50b459 100644 --- a/tools/fiddle/fiddle_main.cpp +++ b/tools/fiddle/fiddle_main.cpp @@ -93,7 +93,7 @@ static SkData* encode_snapshot(const sk_sp<SkSurface>& surface) { int main() { const DrawOptions options = GetDrawOptions(); if (options.source) { - sk_sp<SkData> data(SkData::NewFromFileName(options.source)); + sk_sp<SkData> data(SkData::MakeFromFileName(options.source)); if (!data) { perror(options.source); return 1; diff --git a/tools/get_images_from_skps.cpp b/tools/get_images_from_skps.cpp index 11b99c214d..f9ba34b0f2 100644 --- a/tools/get_images_from_skps.cpp +++ b/tools/get_images_from_skps.cpp @@ -53,8 +53,8 @@ struct Sniffer : public SkPixelSerializer { } gSeen.add(digest); - SkAutoTUnref<SkData> data(SkData::NewWithoutCopy(ptr, len)); - SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(data)); + sk_sp<SkData> data(SkData::MakeWithoutCopy(ptr, len)); + SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(data.get())); if (!codec) { // FIXME: This code is currently unreachable because we create an empty generator when // we fail to create a codec. diff --git a/tools/lua/lua_app.cpp b/tools/lua/lua_app.cpp index 6aea8ee437..92623d0a20 100644 --- a/tools/lua/lua_app.cpp +++ b/tools/lua/lua_app.cpp @@ -19,10 +19,10 @@ extern "C" { #include "lauxlib.h" } -static SkData* read_into_data(const char file[]) { - SkData* data = SkData::NewFromFileName(file); +static sk_sp<SkData> read_into_data(const char file[]) { + sk_sp<SkData> data(SkData::MakeFromFileName(file)); if (!data) { - data = SkData::NewEmpty(); + data = SkData::MakeEmpty(); } return data; } @@ -33,7 +33,7 @@ int tool_main(int argc, char** argv) { SkLua L; for (int i = 1; i < argc; ++i) { - SkData* data = nullptr; + sk_sp<SkData> data; const void* ptr; size_t len; @@ -50,7 +50,6 @@ int tool_main(int argc, char** argv) { SkDebugf("failed to load %s\n", argv[i]); exit(-1); } - SkSafeUnref(data); } return 0; } diff --git a/tools/lua/lua_pictures.cpp b/tools/lua/lua_pictures.cpp index 9776002e7a..eee7088f0d 100644 --- a/tools/lua/lua_pictures.cpp +++ b/tools/lua/lua_pictures.cpp @@ -85,9 +85,9 @@ int tool_main(int argc, char** argv) { SkLua L(summary); for (int i = 0; i < FLAGS_luaFile.count(); ++i) { - SkAutoDataUnref data(SkData::NewFromFileName(FLAGS_luaFile[i])); - if (nullptr == data.get()) { - data.reset(SkData::NewEmpty()); + sk_sp<SkData> data(SkData::MakeFromFileName(FLAGS_luaFile[i])); + if (!data) { + data = SkData::MakeEmpty(); } if (!FLAGS_quiet) { SkDebugf("loading %s...\n", FLAGS_luaFile[i]); diff --git a/tools/skdiff_main.cpp b/tools/skdiff_main.cpp index bb611e96fc..0c60677c58 100644 --- a/tools/skdiff_main.cpp +++ b/tools/skdiff_main.cpp @@ -343,12 +343,12 @@ private: static void get_bounds(DiffResource& resource, const char* name) { if (resource.fBitmap.empty() && !DiffResource::isStatusFailed(resource.fStatus)) { - SkAutoDataUnref fileBits(read_file(resource.fFullPath.c_str())); - if (nullptr == fileBits) { + sk_sp<SkData> fileBits(read_file(resource.fFullPath.c_str())); + if (fileBits) { + get_bitmap(fileBits.get(), resource, true); + } else { SkDebugf("WARNING: couldn't read %s file <%s>\n", name, resource.fFullPath.c_str()); resource.fStatus = DiffResource::kCouldNotRead_Status; - } else { - get_bitmap(fileBits, resource, true); } } } @@ -472,11 +472,11 @@ static void create_diff_images (DiffMetricProc dmp, drp->fComparison.fFullPath = comparisonPath; drp->fComparison.fStatus = DiffResource::kExists_Status; - SkAutoDataUnref baseFileBits(read_file(drp->fBase.fFullPath.c_str())); + sk_sp<SkData> baseFileBits(read_file(drp->fBase.fFullPath.c_str())); if (baseFileBits) { drp->fBase.fStatus = DiffResource::kRead_Status; } - SkAutoDataUnref comparisonFileBits(read_file(drp->fComparison.fFullPath.c_str())); + sk_sp<SkData> comparisonFileBits(read_file(drp->fComparison.fFullPath.c_str())); if (comparisonFileBits) { drp->fComparison.fStatus = DiffResource::kRead_Status; } @@ -491,13 +491,13 @@ static void create_diff_images (DiffMetricProc dmp, } drp->fResult = DiffRecord::kCouldNotCompare_Result; - } else if (are_buffers_equal(baseFileBits, comparisonFileBits)) { + } else if (are_buffers_equal(baseFileBits.get(), comparisonFileBits.get())) { drp->fResult = DiffRecord::kEqualBits_Result; VERBOSE_STATUS("MATCH", ANSI_COLOR_GREEN, baseFiles[i]); } else { AutoReleasePixels arp(drp); - get_bitmap(baseFileBits, drp->fBase, false); - get_bitmap(comparisonFileBits, drp->fComparison, false); + get_bitmap(baseFileBits.get(), drp->fBase, false); + get_bitmap(comparisonFileBits.get(), drp->fComparison, false); VERBOSE_STATUS("DIFFERENT", ANSI_COLOR_RED, baseFiles[i]); if (DiffResource::kDecoded_Status == drp->fBase.fStatus && DiffResource::kDecoded_Status == drp->fComparison.fStatus) { diff --git a/tools/skdiff_utils.cpp b/tools/skdiff_utils.cpp index 3d4bf7ea93..3a37733682 100644 --- a/tools/skdiff_utils.cpp +++ b/tools/skdiff_utils.cpp @@ -25,8 +25,8 @@ bool are_buffers_equal(SkData* skdata1, SkData* skdata2) { return (0 == memcmp(skdata1->data(), skdata2->data(), skdata1->size())); } -SkData* read_file(const char* file_path) { - SkData* data = SkData::NewFromFileName(file_path); +sk_sp<SkData> read_file(const char* file_path) { + sk_sp<SkData> data(SkData::MakeFromFileName(file_path)); if (!data) { SkDebugf("WARNING: could not open file <%s> for reading\n", file_path); } diff --git a/tools/skdiff_utils.h b/tools/skdiff_utils.h index ae7d51a1d2..c535ae26b5 100644 --- a/tools/skdiff_utils.h +++ b/tools/skdiff_utils.h @@ -22,7 +22,7 @@ bool are_buffers_equal(SkData* skdata1, SkData* skdata2); /** Reads the file at the given path and returns its complete contents as an * SkData object (or returns nullptr on error). */ -SkData* read_file(const char* file_path); +sk_sp<SkData> read_file(const char* file_path); /** Decodes the fileBits into the resource.fBitmap. Returns false on failure. */ bool get_bitmap(SkData* fileBits, DiffResource& resource, bool sizeOnly); diff --git a/tools/skhello.cpp b/tools/skhello.cpp index f7d5b9a00e..d1fb96e0eb 100644 --- a/tools/skhello.cpp +++ b/tools/skhello.cpp @@ -38,8 +38,8 @@ static bool do_surface(int w, int h, const char path[], const char text[], doDraw(surface->getCanvas(), paint, text); sk_sp<SkImage> image(surface->makeImageSnapshot()); - SkAutoDataUnref data(image->encode()); - if (nullptr == data.get()) { + sk_sp<SkData> data(image->encode()); + if (!data) { return false; } SkFILEWStream stream(path); diff --git a/tools/skiaserve/Request.cpp b/tools/skiaserve/Request.cpp index edc0a6820b..e3a0caa6e2 100644 --- a/tools/skiaserve/Request.cpp +++ b/tools/skiaserve/Request.cpp @@ -52,7 +52,7 @@ SkBitmap* Request::getBitmapFromCanvas(SkCanvas* canvas) { return bmp; } -SkData* Request::writeCanvasToPng(SkCanvas* canvas) { +sk_sp<SkData> Request::writeCanvasToPng(SkCanvas* canvas) { // capture pixels SkAutoTDelete<SkBitmap> bmp(this->getBitmapFromCanvas(canvas)); SkASSERT(bmp); @@ -65,7 +65,7 @@ SkData* Request::writeCanvasToPng(SkCanvas* canvas) { SkDynamicMemoryWStream buffer; SkDrawCommand::WritePNG((const png_bytep) encodedBitmap->bytes(), bmp->width(), bmp->height(), buffer, true); - return buffer.copyToData(); + return sk_sp<SkData>(buffer.copyToData()); } SkCanvas* Request::getCanvas() { @@ -96,12 +96,12 @@ void Request::drawToCanvas(int n, int m) { fDebugCanvas->drawTo(target, n, m); } -SkData* Request::drawToPng(int n, int m) { +sk_sp<SkData> Request::drawToPng(int n, int m) { this->drawToCanvas(n, m); return writeCanvasToPng(this->getCanvas()); } -SkData* Request::writeOutSkp() { +sk_sp<SkData> Request::writeOutSkp() { // Playback into picture recorder SkIRect bounds = this->getBounds(); SkPictureRecorder recorder; @@ -117,7 +117,7 @@ SkData* Request::writeOutSkp() { SkAutoTUnref<SkPixelSerializer> serializer(SkImageEncoder::CreatePixelSerializer()); picture->serialize(&outStream, serializer); - return outStream.copyToData(); + return sk_sp<SkData>(outStream.copyToData()); } GrContext* Request::getContext() { @@ -242,7 +242,7 @@ bool Request::initPictureFromStream(SkStream* stream) { return true; } -SkData* Request::getJsonOps(int n) { +sk_sp<SkData> Request::getJsonOps(int n) { SkCanvas* canvas = this->getCanvas(); Json::Value root = fDebugCanvas->toJSON(fUrlDataManager, n, canvas); root["mode"] = Json::Value(fGPUEnabled ? "gpu" : "cpu"); @@ -251,10 +251,10 @@ SkData* Request::getJsonOps(int n) { SkDynamicMemoryWStream stream; stream.writeText(Json::FastWriter().write(root).c_str()); - return stream.copyToData(); + return sk_sp<SkData>(stream.copyToData()); } -SkData* Request::getJsonBatchList(int n) { +sk_sp<SkData> Request::getJsonBatchList(int n) { SkCanvas* canvas = this->getCanvas(); SkASSERT(fGPUEnabled); @@ -263,10 +263,10 @@ SkData* Request::getJsonBatchList(int n) { SkDynamicMemoryWStream stream; stream.writeText(Json::FastWriter().write(result).c_str()); - return stream.copyToData(); + return sk_sp<SkData>(stream.copyToData()); } -SkData* Request::getJsonInfo(int n) { +sk_sp<SkData> Request::getJsonInfo(int n) { // drawTo SkAutoTUnref<SkSurface> surface(this->createCPUSurface()); SkCanvas* canvas = surface->getCanvas(); @@ -284,7 +284,7 @@ SkData* Request::getJsonInfo(int n) { std::string json = Json::FastWriter().write(info); // We don't want the null terminator so strlen is correct - return SkData::NewWithCopy(json.c_str(), strlen(json.c_str())); + return SkData::MakeWithCopy(json.c_str(), strlen(json.c_str())); } SkColor Request::getPixel(int x, int y) { diff --git a/tools/skiaserve/Request.h b/tools/skiaserve/Request.h index f3af6b72ee..7a5daf55d1 100644 --- a/tools/skiaserve/Request.h +++ b/tools/skiaserve/Request.h @@ -36,8 +36,8 @@ struct Request { ~Request(); // draws to skia draw op N, highlighting the Mth batch(-1 means no highlight) - SkData* drawToPng(int n, int m = -1); - SkData* writeOutSkp(); + sk_sp<SkData> drawToPng(int n, int m = -1); + sk_sp<SkData> writeOutSkp(); SkCanvas* getCanvas(); SkBitmap* getBitmapFromCanvas(SkCanvas* canvas); bool enableGPU(bool enable); @@ -48,13 +48,13 @@ struct Request { bool initPictureFromStream(SkStream*); // Returns the json list of ops as an SkData - SkData* getJsonOps(int n); + sk_sp<SkData> getJsonOps(int n); // Returns a json list of batches as an SkData - SkData* getJsonBatchList(int n); + sk_sp<SkData> getJsonBatchList(int n); // Returns json with the viewMatrix and clipRect - SkData* getJsonInfo(int n); + sk_sp<SkData> getJsonInfo(int n); // returns the color of the pixel at (x,y) in the canvas SkColor getPixel(int x, int y); @@ -64,7 +64,7 @@ struct Request { UrlDataManager fUrlDataManager; private: - SkData* writeCanvasToPng(SkCanvas* canvas); + sk_sp<SkData> writeCanvasToPng(SkCanvas* canvas); void drawToCanvas(int n, int m = -1); SkSurface* createCPUSurface(); SkSurface* createGPUSurface(); diff --git a/tools/skiaserve/urlhandlers/BatchesHandler.cpp b/tools/skiaserve/urlhandlers/BatchesHandler.cpp index b245c4d8f3..81457acca4 100644 --- a/tools/skiaserve/urlhandlers/BatchesHandler.cpp +++ b/tools/skiaserve/urlhandlers/BatchesHandler.cpp @@ -32,8 +32,8 @@ int BatchesHandler::handle(Request* request, MHD_Connection* connection, if (0 == strcmp(method, MHD_HTTP_METHOD_GET)) { int n = request->getLastOp(); - SkAutoTUnref<SkData> data(request->getJsonBatchList(n)); - return SendData(connection, data, "application/json"); + sk_sp<SkData> data(request->getJsonBatchList(n)); + return SendData(connection, data.get(), "application/json"); } return MHD_NO; diff --git a/tools/skiaserve/urlhandlers/CmdHandler.cpp b/tools/skiaserve/urlhandlers/CmdHandler.cpp index 22877e7810..c8ec82d22b 100644 --- a/tools/skiaserve/urlhandlers/CmdHandler.cpp +++ b/tools/skiaserve/urlhandlers/CmdHandler.cpp @@ -37,8 +37,8 @@ int CmdHandler::handle(Request* request, MHD_Connection* connection, sscanf(commands[1].c_str(), "%d", &n); } - SkAutoTUnref<SkData> data(request->getJsonOps(n)); - return SendData(connection, data, "application/json"); + sk_sp<SkData> data(request->getJsonOps(n)); + return SendData(connection, data.get(), "application/json"); } // /cmd/N, for now only delete supported diff --git a/tools/skiaserve/urlhandlers/DownloadHandler.cpp b/tools/skiaserve/urlhandlers/DownloadHandler.cpp index 4e2391588b..17bf867485 100644 --- a/tools/skiaserve/urlhandlers/DownloadHandler.cpp +++ b/tools/skiaserve/urlhandlers/DownloadHandler.cpp @@ -25,9 +25,9 @@ int DownloadHandler::handle(Request* request, MHD_Connection* connection, return MHD_NO; } - SkAutoTUnref<SkData> data(request->writeOutSkp()); + sk_sp<SkData> data(request->writeOutSkp()); // TODO fancier name handling - return SendData(connection, data, "application/octet-stream", true, + return SendData(connection, data.get(), "application/octet-stream", true, "attachment; filename=something.skp;"); } diff --git a/tools/skiaserve/urlhandlers/ImgHandler.cpp b/tools/skiaserve/urlhandlers/ImgHandler.cpp index 91ea6d06de..659c215197 100644 --- a/tools/skiaserve/urlhandlers/ImgHandler.cpp +++ b/tools/skiaserve/urlhandlers/ImgHandler.cpp @@ -40,6 +40,6 @@ int ImgHandler::handle(Request* request, MHD_Connection* connection, sscanf(commands[2].c_str(), "%d", &m); } - SkAutoTUnref<SkData> data(request->drawToPng(n, m)); - return SendData(connection, data, "image/png"); + sk_sp<SkData> data(request->drawToPng(n, m)); + return SendData(connection, data.get(), "image/png"); } diff --git a/tools/skiaserve/urlhandlers/InfoHandler.cpp b/tools/skiaserve/urlhandlers/InfoHandler.cpp index 464bbb35e1..9335458f5f 100644 --- a/tools/skiaserve/urlhandlers/InfoHandler.cpp +++ b/tools/skiaserve/urlhandlers/InfoHandler.cpp @@ -37,6 +37,6 @@ int InfoHandler::handle(Request* request, MHD_Connection* connection, sscanf(commands[1].c_str(), "%d", &n); } - SkAutoTUnref<SkData> data(request->getJsonInfo(n)); - return SendData(connection, data, "application/json"); + sk_sp<SkData> data(request->getJsonInfo(n)); + return SendData(connection, data.get(), "application/json"); } diff --git a/tools/visualize_color_gamut.cpp b/tools/visualize_color_gamut.cpp index 4d340f8d98..424106f9c4 100644 --- a/tools/visualize_color_gamut.cpp +++ b/tools/visualize_color_gamut.cpp @@ -119,12 +119,12 @@ int main(int argc, char** argv) { return -1; } - SkAutoTUnref<SkData> data(SkData::NewFromFileName(input)); + sk_sp<SkData> data(SkData::MakeFromFileName(input)); if (!data) { SkDebugf("Cannot find input image.\n"); return -1; } - SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(data)); + SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(data.get())); if (!codec) { SkDebugf("Invalid input image.\n"); return -1; |