summaryrefslogtreecommitdiffstats
path: root/core/java/android/text/MeasuredText.java
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2011-08-01 14:01:37 -0700
committerRomain Guy <romainguy@google.com>2011-08-01 14:01:37 -0700
commite5ea4403ce58982522554b7ff23f41e6551923c1 (patch)
treefdd29f7008b0125d7f87b52c26b40a3b66e760b7 /core/java/android/text/MeasuredText.java
parent704972acef57141e708561d803201c0adb55a2d6 (diff)
downloadframeworks_base-e5ea4403ce58982522554b7ff23f41e6551923c1.zip
frameworks_base-e5ea4403ce58982522554b7ff23f41e6551923c1.tar.gz
frameworks_base-e5ea4403ce58982522554b7ff23f41e6551923c1.tar.bz2
Plug memory leak in EditText.
Change-Id: I0b42c23ceeaa958d02255945c35ff6807c177114
Diffstat (limited to 'core/java/android/text/MeasuredText.java')
-rw-r--r--core/java/android/text/MeasuredText.java42
1 files changed, 21 insertions, 21 deletions
diff --git a/core/java/android/text/MeasuredText.java b/core/java/android/text/MeasuredText.java
index 2920ac5..c184c11 100644
--- a/core/java/android/text/MeasuredText.java
+++ b/core/java/android/text/MeasuredText.java
@@ -29,14 +29,15 @@ import com.android.internal.util.ArrayUtils;
*/
class MeasuredText {
private static final boolean localLOGV = false;
- /* package */ CharSequence mText;
- /* package */ int mTextStart;
- /* package */ float[] mWidths;
- /* package */ char[] mChars;
- /* package */ byte[] mLevels;
- /* package */ int mDir;
- /* package */ boolean mEasy;
- /* package */ int mLen;
+ CharSequence mText;
+ int mTextStart;
+ float[] mWidths;
+ char[] mChars;
+ byte[] mLevels;
+ int mDir;
+ boolean mEasy;
+ int mLen;
+
private int mPos;
private TextPaint mWorkPaint;
@@ -44,16 +45,16 @@ class MeasuredText {
mWorkPaint = new TextPaint();
}
- private static MeasuredText[] cached = new MeasuredText[3];
+ private static final Object[] sLock = new Object[0];
+ private static MeasuredText[] sCached = new MeasuredText[3];
- /* package */
static MeasuredText obtain() {
MeasuredText mt;
- synchronized (cached) {
- for (int i = cached.length; --i >= 0;) {
- if (cached[i] != null) {
- mt = cached[i];
- cached[i] = null;
+ synchronized (sLock) {
+ for (int i = sCached.length; --i >= 0;) {
+ if (sCached[i] != null) {
+ mt = sCached[i];
+ sCached[i] = null;
return mt;
}
}
@@ -65,14 +66,14 @@ class MeasuredText {
return mt;
}
- /* package */
static MeasuredText recycle(MeasuredText mt) {
mt.mText = null;
if (mt.mLen < 1000) {
- synchronized(cached) {
- for (int i = 0; i < cached.length; ++i) {
- if (cached[i] == null) {
- cached[i] = mt;
+ synchronized(sLock) {
+ for (int i = 0; i < sCached.length; ++i) {
+ if (sCached[i] == null) {
+ sCached[i] = mt;
+ mt.mText = null;
break;
}
}
@@ -84,7 +85,6 @@ class MeasuredText {
/**
* Analyzes text for bidirectional runs. Allocates working buffers.
*/
- /* package */
void setPara(CharSequence text, int start, int end, TextDirectionHeuristic textDir) {
mText = text;
mTextStart = start;