aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar senorblanco <senorblanco@chromium.org>2014-08-15 10:48:43 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-08-15 10:48:43 -0700
commit673d9732bf37df724500e04afcdf27d5c711ef60 (patch)
tree63629a1ffd19dfa31ea86800bd68585b7a483f1d /src
parentcccb3b44e42af1aa52fe03a5a68e4f27367c910d (diff)
Check all scratch texture allocations for image filters.
BUG=403677 R=bsalomon@google.com NOTREECHECKS=true Author: senorblanco@chromium.org Review URL: https://codereview.chromium.org/473283002
Diffstat (limited to 'src')
-rw-r--r--src/core/SkImageFilter.cpp3
-rw-r--r--src/effects/SkDisplacementMapEffect.cpp3
-rw-r--r--src/effects/SkMorphologyImageFilter.cpp6
-rw-r--r--src/effects/SkXfermodeImageFilter.cpp3
4 files changed, 15 insertions, 0 deletions
diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp
index cf1f07696b..4a9a22e634 100644
--- a/src/core/SkImageFilter.cpp
+++ b/src/core/SkImageFilter.cpp
@@ -256,6 +256,9 @@ bool SkImageFilter::filterImageGPU(Proxy* proxy, const SkBitmap& src, const Cont
desc.fConfig = kRGBA_8888_GrPixelConfig;
GrAutoScratchTexture dst(context, desc);
+ if (NULL == dst.texture()) {
+ return false;
+ }
GrContext::AutoMatrix am;
am.setIdentity(context);
GrContext::AutoRenderTarget art(context, dst.texture()->asRenderTarget());
diff --git a/src/effects/SkDisplacementMapEffect.cpp b/src/effects/SkDisplacementMapEffect.cpp
index 26aaa022ac..bae7ac098c 100644
--- a/src/effects/SkDisplacementMapEffect.cpp
+++ b/src/effects/SkDisplacementMapEffect.cpp
@@ -389,6 +389,9 @@ bool SkDisplacementMapEffect::filterImageGPU(Proxy* proxy, const SkBitmap& src,
desc.fConfig = kSkia8888_GrPixelConfig;
GrAutoScratchTexture ast(context, desc);
+ if (NULL == ast.texture()) {
+ return false;
+ }
SkAutoTUnref<GrTexture> dst(ast.detach());
GrContext::AutoRenderTarget art(context, dst->asRenderTarget());
diff --git a/src/effects/SkMorphologyImageFilter.cpp b/src/effects/SkMorphologyImageFilter.cpp
index 49df654316..67769f29b9 100644
--- a/src/effects/SkMorphologyImageFilter.cpp
+++ b/src/effects/SkMorphologyImageFilter.cpp
@@ -506,6 +506,9 @@ bool apply_morphology(const SkBitmap& input,
if (radius.fWidth > 0) {
GrAutoScratchTexture ast(context, desc);
+ if (NULL == ast.texture()) {
+ return false;
+ }
GrContext::AutoRenderTarget art(context, ast.texture()->asRenderTarget());
apply_morphology_pass(context, src, srcRect, dstRect, radius.fWidth,
morphType, Gr1DKernelEffect::kX_Direction);
@@ -519,6 +522,9 @@ bool apply_morphology(const SkBitmap& input,
}
if (radius.fHeight > 0) {
GrAutoScratchTexture ast(context, desc);
+ if (NULL == ast.texture()) {
+ return false;
+ }
GrContext::AutoRenderTarget art(context, ast.texture()->asRenderTarget());
apply_morphology_pass(context, src, srcRect, dstRect, radius.fHeight,
morphType, Gr1DKernelEffect::kY_Direction);
diff --git a/src/effects/SkXfermodeImageFilter.cpp b/src/effects/SkXfermodeImageFilter.cpp
index cf32cf5cb0..c876d5f6b3 100644
--- a/src/effects/SkXfermodeImageFilter.cpp
+++ b/src/effects/SkXfermodeImageFilter.cpp
@@ -132,6 +132,9 @@ bool SkXfermodeImageFilter::filterImageGPU(Proxy* proxy,
desc.fConfig = kSkia8888_GrPixelConfig;
GrAutoScratchTexture ast(context, desc);
+ if (NULL == ast.texture()) {
+ return false;
+ }
SkAutoTUnref<GrTexture> dst(ast.detach());
GrContext::AutoRenderTarget art(context, dst->asRenderTarget());