diff options
author | Hal Canary <halcanary@google.com> | 2016-12-12 13:48:12 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2016-12-12 20:18:50 +0000 |
commit | 1b3387b5cfef150c3237c6a8700b2d6f3730e4ce (patch) | |
tree | 3b0e9690f1346e37631aa687650390d49f5f3c46 /src/core/SkSpecialSurface.cpp | |
parent | 8615fe59fcc0246a8b0c11b37b3e75f82c9933dd (diff) |
SkBitmap::setPixelRef(): less reference churn
BUG=skia:
Change-Id: I9657e4af5fcc808f9175ff336155374ccc77999d
Reviewed-on: https://skia-review.googlesource.com/5461
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
Diffstat (limited to 'src/core/SkSpecialSurface.cpp')
-rw-r--r-- | src/core/SkSpecialSurface.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/core/SkSpecialSurface.cpp b/src/core/SkSpecialSurface.cpp index 956300cb3e..e6206a0a19 100644 --- a/src/core/SkSpecialSurface.cpp +++ b/src/core/SkSpecialSurface.cpp @@ -63,14 +63,14 @@ sk_sp<SkSpecialImage> SkSpecialSurface::makeImageSnapshot() { class SkSpecialSurface_Raster : public SkSpecialSurface_Base { public: - SkSpecialSurface_Raster(SkPixelRef* pr, + SkSpecialSurface_Raster(sk_sp<SkPixelRef> pr, const SkIRect& subset, const SkSurfaceProps* props) : INHERITED(subset, props) { const SkImageInfo& info = pr->info(); fBitmap.setInfo(info, info.minRowBytes()); - fBitmap.setPixelRef(pr); + fBitmap.setPixelRef(std::move(pr), 0, 0); fCanvas.reset(new SkCanvas(fBitmap, this->props())); fCanvas->clipRect(SkRect::Make(subset)); @@ -93,7 +93,7 @@ private: sk_sp<SkSpecialSurface> SkSpecialSurface::MakeFromBitmap(const SkIRect& subset, SkBitmap& bm, const SkSurfaceProps* props) { - return sk_make_sp<SkSpecialSurface_Raster>(bm.pixelRef(), subset, props); + return sk_make_sp<SkSpecialSurface_Raster>(sk_ref_sp(bm.pixelRef()), subset, props); } sk_sp<SkSpecialSurface> SkSpecialSurface::MakeRaster(const SkImageInfo& info, @@ -105,7 +105,7 @@ sk_sp<SkSpecialSurface> SkSpecialSurface::MakeRaster(const SkImageInfo& info, const SkIRect subset = SkIRect::MakeWH(pr->info().width(), pr->info().height()); - return sk_make_sp<SkSpecialSurface_Raster>(pr.get(), subset, props); + return sk_make_sp<SkSpecialSurface_Raster>(std::move(pr), subset, props); } #if SK_SUPPORT_GPU |