aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/image
diff options
context:
space:
mode:
authorGravatar Heather Miller <hcm@google.com>2016-11-10 21:25:30 +0000
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-11-10 21:25:44 +0000
commitb613c266df48cf45296ecc23d1bd7098c84bb7ba (patch)
tree50f7d84a4238918bf5869ee760ed78332b2db946 /src/image
parentfac8db2df8b5cf6fd62189315bad0726d8e51f6d (diff)
Revert "Change SkCanvas to *not* inherit from SkRefCnt"
This reverts commit 824075071885b6b741c141cbe2134d8345d34589. Reason for revert: Breaking WebView (chromium:663959) Original change's description: > Change SkCanvas to *not* inherit from SkRefCnt > > Definitely tricky for classes like SkNWayCanvas, where the caller (today) > need not pay attention to ownership of the canvases it gave the NWay > (after this CL, the caller *must* managed ownership) > > BUG=skia: > > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4441 > > DOCS_PREVIEW= https://skia.org/?cl=4441 > > Change-Id: Ib1ac07a3cdf0686d78e7aaa4735d45cc90bea081 > Reviewed-on: https://skia-review.googlesource.com/4441 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Florin Malita <fmalita@chromium.org> > Reviewed-by: Robert Phillips <robertphillips@google.com> > TBR=djsollen@google.com,mtklein@google.com,halcanary@google.com,robertphillips@google.com,fmalita@chromium.org,fmalita@google.com,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I5e3b3e876b7d2c09833cf841801321033b6b968b Reviewed-on: https://skia-review.googlesource.com/4687 Commit-Queue: Heather Miller <hcm@google.com> Reviewed-by: Heather Miller <hcm@google.com>
Diffstat (limited to 'src/image')
-rw-r--r--src/image/SkSurface.cpp3
-rw-r--r--src/image/SkSurface_Base.h8
2 files changed, 7 insertions, 4 deletions
diff --git a/src/image/SkSurface.cpp b/src/image/SkSurface.cpp
index 3d6670f169..38bab9e32f 100644
--- a/src/image/SkSurface.cpp
+++ b/src/image/SkSurface.cpp
@@ -58,12 +58,14 @@ SkSurfaceProps::SkSurfaceProps(const SkSurfaceProps& other)
SkSurface_Base::SkSurface_Base(int width, int height, const SkSurfaceProps* props)
: INHERITED(width, height, props)
{
+ fCachedCanvas = nullptr;
fCachedImage = nullptr;
}
SkSurface_Base::SkSurface_Base(const SkImageInfo& info, const SkSurfaceProps* props)
: INHERITED(info, props)
{
+ fCachedCanvas = nullptr;
fCachedImage = nullptr;
}
@@ -74,6 +76,7 @@ SkSurface_Base::~SkSurface_Base() {
}
SkSafeUnref(fCachedImage);
+ SkSafeUnref(fCachedCanvas);
}
void SkSurface_Base::onDraw(SkCanvas* canvas, SkScalar x, SkScalar y, const SkPaint* paint) {
diff --git a/src/image/SkSurface_Base.h b/src/image/SkSurface_Base.h
index a8c1d8f0a4..8351bb87e6 100644
--- a/src/image/SkSurface_Base.h
+++ b/src/image/SkSurface_Base.h
@@ -89,8 +89,8 @@ public:
uint32_t newGenerationID();
private:
- std::unique_ptr<SkCanvas> fCachedCanvas;
- SkImage* fCachedImage;
+ SkCanvas* fCachedCanvas;
+ SkImage* fCachedImage;
void aboutToDraw(ContentChangeMode mode);
@@ -106,12 +106,12 @@ private:
SkCanvas* SkSurface_Base::getCachedCanvas() {
if (nullptr == fCachedCanvas) {
- fCachedCanvas = std::unique_ptr<SkCanvas>(this->onNewCanvas());
+ fCachedCanvas = this->onNewCanvas();
if (fCachedCanvas) {
fCachedCanvas->setSurfaceBase(this);
}
}
- return fCachedCanvas.get();
+ return fCachedCanvas;
}
sk_sp<SkImage> SkSurface_Base::refCachedImage(SkBudgeted budgeted, ForceUnique unique) {