summaryrefslogtreecommitdiffstats
path: root/core/java/android/text/StaticLayout.java
diff options
context:
space:
mode:
authorRaph Levien <raph@google.com>2015-07-29 12:34:13 -0700
committerRaph Levien <raph@google.com>2015-07-29 12:34:13 -0700
commit22ba7869f6e211f5a692235f52687a6acdd71afc (patch)
tree042b52ab5fba42bef68c5f109ed0476345d27755 /core/java/android/text/StaticLayout.java
parent9c450936aad92920215d2bc52d2c9ce132a55432 (diff)
downloadframeworks_base-22ba7869f6e211f5a692235f52687a6acdd71afc.zip
frameworks_base-22ba7869f6e211f5a692235f52687a6acdd71afc.tar.gz
frameworks_base-22ba7869f6e211f5a692235f52687a6acdd71afc.tar.bz2
Release text when finishing StaticLayout.Builder
DynamicLayout reuses a StaticLayout.Builder object to avoid having to allocate. There is a "finish" method that releases any expensive internal state of the builder object, but it didn't release a reference to the text object (which in turn may contain references to lots of other things, especially if it's a Spannable). This patch releases the text, as well as a few other arrays, at time of finish. Bug: 22822416 Change-Id: Icc8b6cd41a9a2d11689df7bd1b9f524c6524f706
Diffstat (limited to 'core/java/android/text/StaticLayout.java')
-rw-r--r--core/java/android/text/StaticLayout.java4
1 files changed, 4 insertions, 0 deletions
diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java
index efc9e1a..3b0def2 100644
--- a/core/java/android/text/StaticLayout.java
+++ b/core/java/android/text/StaticLayout.java
@@ -112,6 +112,10 @@ public class StaticLayout extends Layout {
// release any expensive state
/* package */ void finish() {
nFinishBuilder(mNativePtr);
+ mText = null;
+ mPaint = null;
+ mLeftIndents = null;
+ mRightIndents = null;
mMeasuredText.finish();
}