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
Loading
Please register or sign in to comment