Commit f644820b authored by danakj@chromium.org's avatar danakj@chromium.org

cc: Don't leak a ref to SkColorFilter.

The SkColorFilter* we get in GLRenderer is a refcounted
object with a reference on it. Since we just store it in
a raw pointer, we leak that reference. Instead, store
it in a RefPtr.

R=senorblanco
BUG=259815

Review URL: https://chromiumcodereview.appspot.com/19267024

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@213283 0039d316-1c4b-4281-b951-d872f2087c98
parent 080fbdc7
......@@ -752,9 +752,15 @@ 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;
{
SkColorFilter* colorfilter_rawptr = NULL;
quad->filter->asColorFilter(&colorfilter_rawptr);
cf = skia::AdoptRef(colorfilter_rawptr);
}
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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment