Index: cc/output/gl_renderer.cc |
diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc |
index 0133b277d66461809010534a6e56e07fc9c47a92..edef7945d1cda89790aec08250bfa14a35db1eba 100644 |
--- a/cc/output/gl_renderer.cc |
+++ b/cc/output/gl_renderer.cc |
@@ -752,9 +752,10 @@ void GLRenderer::DrawRenderPassQuad(DrawingFrame* frame, |
SkScalar color_matrix[20]; |
bool use_color_matrix = false; |
if (quad->filter) { |
- SkColorFilter* cf; |
- if ((quad->filter->asColorFilter(&cf)) && cf->asColorMatrix(color_matrix) && |
- !quad->filter->getInput(0)) { |
+ skia::RefPtr<SkColorFilter> cf; |
+ quad->filter->asColorFilter(cf.ReceiveAndAdoptRef()); |
+ |
+ if (cf && cf->asColorMatrix(color_matrix) && !quad->filter->getInput(0)) { |
// We have a single color matrix as a filter; apply it locally |
// in the compositor. |
use_color_matrix = true; |