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;