Files
frameworks_base/graphics/java/android
John Reck fbff7117ab Clear native shader when Paint shader changes
Since Recents never goes away that means TaskViewThumbnail
never goes away which in turn means mDrawPaint never goes away.

mDrawPaint has a setShader(null) called on it to release
the BitmapShader it was previously drawn with, but that
change didn't push down to native until the next time the
paint was used. As a result, the Paint held on to a
reference to the bitmap.

The fix is simple, when the shader is changed simply
push down an immediate clear of the native shader. Since
the bitmap of a BitmapShader isn't changeable we don't
need to worry about clearing references for shader mutation,
merely when Paint#setShader() happens.

Bug: 38258699
Test: Open & close recents, observe EGL memory immediately returns
to sub-5MB.

Change-Id: I6742efa8ae8dfca76b62a06bc1a1a00646feba64
2017-06-06 12:14:04 -07:00
..
2016-09-07 11:41:15 -07:00