diff options
| author | Raph Levien <raph@google.com> | 2015-07-29 12:34:13 -0700 |
|---|---|---|
| committer | Raph Levien <raph@google.com> | 2015-07-29 12:34:13 -0700 |
| commit | 22ba7869f6e211f5a692235f52687a6acdd71afc (patch) | |
| tree | 042b52ab5fba42bef68c5f109ed0476345d27755 /core/java/android/text/StaticLayout.java | |
| parent | 9c450936aad92920215d2bc52d2c9ce132a55432 (diff) | |
| download | frameworks_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.java | 4 |
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(); } |
