diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.com> | 2014-09-23 22:35:06 +0200 |
---|---|---|
committer | Tomaž Vajngerl <tomaz.vajngerl@collabora.com> | 2014-09-24 20:43:03 +0200 |
commit | 0aad04016ca567b93e4d85ae79657f0888514a13 (patch) | |
tree | 9ee2591b7c164b453bb724084555aaaa0854337a | |
parent | 688ff90d32c1b4c56800d242b43b37ed1b990f54 (diff) |
android: destroy tiles (free the bitmap) when they are removed
Change-Id: I55959c115467f98d43d471c280bb3a0248b669ec
-rw-r--r-- | android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java | 1 | ||||
-rw-r--r-- | android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/TileLayer.java | 11 |
2 files changed, 12 insertions, 0 deletions
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java index 25a1705d06c1..d11c4c9db390 100644 --- a/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java +++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/LOKitThread.java @@ -83,6 +83,7 @@ public class LOKitThread extends Thread { Rect tileRect = new Rect(tile.x, tile.y, tile.x + TILE_SIZE, tile.y + TILE_SIZE); if (!Rect.intersects(rect, tileRect)) { Log.i(LOGTAG, "tilerender delete " + tileRect); + tile.destroy(); removeTiles.add(tile); } } diff --git a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/TileLayer.java b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/TileLayer.java index 4f7ff9df941b..b7ba36acba98 100644 --- a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/TileLayer.java +++ b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/TileLayer.java @@ -7,6 +7,7 @@ package org.mozilla.gecko.gfx; import android.graphics.Rect; import android.opengl.GLES20; +import android.util.Log; import java.nio.ByteBuffer; @@ -50,6 +51,16 @@ public abstract class TileLayer extends Layer { } } + public void destroy() { + try { + if (mImage != null) { + mImage.destroy(); + } + } catch (Exception ex) { + Log.e(LOGTAG, "error clearing buffers: ", ex); + } + } + public void setPaintMode(PaintMode mode) { mPaintMode = mode; } |