Merge "Revert "Use a weakreference to prevent the static variable from holding an Activity." Bug was fixed in a different way."
diff --git a/core/java/android/text/DynamicLayout.java b/core/java/android/text/DynamicLayout.java
index 4f42659..2c78679 100644
--- a/core/java/android/text/DynamicLayout.java
+++ b/core/java/android/text/DynamicLayout.java
@@ -268,11 +268,10 @@
// generate new layout for affected text
StaticLayout reflowed;
- WeakReference<StaticLayout> layoutRef;
+
synchronized (sLock) {
- layoutRef = sStaticLayoutRef;
- reflowed = sStaticLayoutRef != null ? sStaticLayoutRef.get() : null;
- sStaticLayoutRef = null;
+ reflowed = sStaticLayout;
+ sStaticLayout = null;
}
if (reflowed == null) {
@@ -359,12 +358,8 @@
}
synchronized (sLock) {
+ sStaticLayout = reflowed;
reflowed.finish();
- if (layoutRef == null || layoutRef.get() != reflowed) {
- sStaticLayoutRef = new WeakReference<StaticLayout>(reflowed);
- } else {
- sStaticLayoutRef = layoutRef;
- }
}
}
@@ -493,8 +488,7 @@
private int mTopPadding, mBottomPadding;
- private static WeakReference<StaticLayout> sStaticLayoutRef = new WeakReference<StaticLayout>(
- new StaticLayout(true));
+ private static StaticLayout sStaticLayout = new StaticLayout(true);
private static final Object[] sLock = new Object[0];
private static final int START = 0;