aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/shaders/gradients/SkSweepGradient.cpp
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2017-06-09 08:21:42 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-06-09 14:57:27 +0000
commit6af270116dcf0bc123ce5ca22c319e087cd21f2f (patch)
treea5a1b031690c5deb57f06a55f61a4888ef96c633 /src/shaders/gradients/SkSweepGradient.cpp
parent12bf424ec21f1a99759fda8e196850a8789c8e3e (diff)
Make gradient effect creation fail if texture LUT creation fails
Bug: skia:6198 Change-Id: Ib8fb273564ca54ee9e6e045ac67e191af705a37a Reviewed-on: https://skia-review.googlesource.com/19260 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/shaders/gradients/SkSweepGradient.cpp')
-rw-r--r--src/shaders/gradients/SkSweepGradient.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/shaders/gradients/SkSweepGradient.cpp b/src/shaders/gradients/SkSweepGradient.cpp
index 1e583c2ee0..58e34fdaa6 100644
--- a/src/shaders/gradients/SkSweepGradient.cpp
+++ b/src/shaders/gradients/SkSweepGradient.cpp
@@ -144,8 +144,10 @@ public:
class GLSLSweepProcessor;
static sk_sp<GrFragmentProcessor> Make(const CreateArgs& args) {
- return sk_sp<GrFragmentProcessor>(new GrSweepGradient(args));
+ auto processor = sk_sp<GrSweepGradient>(new GrSweepGradient(args));
+ return processor->isValid() ? std::move(processor) : nullptr;
}
+
~GrSweepGradient() override {}
const char* name() const override { return "Sweep Gradient"; }
@@ -267,6 +269,9 @@ sk_sp<GrFragmentProcessor> SkSweepGradient::asFragmentProcessor(const AsFPArgs&
sk_sp<GrFragmentProcessor> inner(GrSweepGradient::Make(
GrGradientEffect::CreateArgs(args.fContext, this, &matrix, SkShader::kClamp_TileMode,
std::move(colorSpaceXform), SkToBool(args.fDstColorSpace))));
+ if (!inner) {
+ return nullptr;
+ }
return GrFragmentProcessor::MulOutputByInputAlpha(std::move(inner));
}