Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a7e2f64f authored by Dohyun Lee's avatar Dohyun Lee Committed by Steve Kondik
Browse files

libhwui: fix texture memory leak



When there is not enough space and we cannot delete any
Texture in TextureCache to secure space, a new Texture is
created over and over again for the same SkBitmap and
there is the case that it is not deleted.
This patch avoids such cases.

Change-Id: Ic5353995e6d0716c31fe3bb49c60ec1a71574643
Signed-off-by: default avatarDohyun Lee <leedhyun11@gmail.com>
parent 64deb448
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1710,6 +1710,7 @@ void OpenGLRenderer::drawPatch(const SkBitmap* bitmap, const Patch* mesh,

    Texture* texture = entry ? entry->texture : mCaches.textureCache.get(bitmap);
    if (!texture) return;
    const AutoTexture autoCleanup(texture);

    // 9 patches are built for stretching - always filter
    int textureFillFlags = TextureFillFlags::ForceFilter;
+4 −0
Original line number Diff line number Diff line
@@ -306,6 +306,10 @@ void RenderState::render(const Glop& glop) {
    // Shader uniforms
    SkiaShader::apply(*mCaches, fill.skiaShaderData);

    Texture* texture = (fill.skiaShaderData.skiaShaderType & kBitmap_SkiaShaderType) ?
            fill.skiaShaderData.bitmapData.bitmapTexture : nullptr;
    const AutoTexture autoCleanup(texture);

    // ------------------------------------
    // ---------- GL state setup ----------
    // ------------------------------------