aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkBlitter.cpp
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2016-03-08 18:50:00 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-03-08 18:50:00 -0800
commit8a21c9fe7f5fef9e87115defef27bd7218419f28 (patch)
tree1dd8b9eda9eae99b33bc88b97bd5f0a7a0769dc3 /src/core/SkBlitter.cpp
parent042f859c19f71ca9feacddd1cb058ff59eed8963 (diff)
use Make instead of Create to return a shared shader
Partially updated call sites. Undefine the flag in SkSHader.h to convert the remaining sites. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1772463002 Review URL: https://codereview.chromium.org/1772463002
Diffstat (limited to 'src/core/SkBlitter.cpp')
-rw-r--r--src/core/SkBlitter.cpp17
1 files changed, 5 insertions, 12 deletions
diff --git a/src/core/SkBlitter.cpp b/src/core/SkBlitter.cpp
index bb5cfb72e3..9fcab9c982 100644
--- a/src/core/SkBlitter.cpp
+++ b/src/core/SkBlitter.cpp
@@ -584,13 +584,7 @@ SkBlitter* SkBlitterClipper::apply(SkBlitter* blitter, const SkRegion* clip,
class Sk3DShader : public SkShader {
public:
- Sk3DShader(SkShader* proxy) : fProxy(proxy) {
- SkSafeRef(proxy);
- }
-
- virtual ~Sk3DShader() {
- SkSafeUnref(fProxy);
- }
+ Sk3DShader(sk_sp<SkShader> proxy) : fProxy(std::move(proxy)) {}
size_t onContextSize(const ContextRec& rec) const override {
size_t size = sizeof(Sk3DShaderContext);
@@ -727,18 +721,17 @@ public:
protected:
void flatten(SkWriteBuffer& buffer) const override {
- buffer.writeFlattenable(fProxy);
+ buffer.writeFlattenable(fProxy.get());
}
private:
- SkShader* fProxy;
+ sk_sp<SkShader> fProxy;
typedef SkShader INHERITED;
};
SkFlattenable* Sk3DShader::CreateProc(SkReadBuffer& buffer) {
- SkAutoTUnref<SkShader> shader(buffer.readShader());
- return new Sk3DShader(shader);
+ return new Sk3DShader(buffer.readShader());
}
class Sk3DBlitter : public SkBlitter {
@@ -822,7 +815,7 @@ SkBlitter* SkBlitter::Choose(const SkPixmap& device,
if (origPaint.getMaskFilter() != nullptr &&
origPaint.getMaskFilter()->getFormat() == SkMask::k3D_Format) {
- shader3D = new Sk3DShader(shader);
+ shader3D = new Sk3DShader(sk_sp<SkShader>(SkSafeRef(shader)));
// we know we haven't initialized lazyPaint yet, so just do it
paint.writable()->setShader(shader3D)->unref();
shader = shader3D;