diff options
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/text/DynamicLayout.java | 16 |
1 files changed, 5 insertions, 11 deletions
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 @@ extends Layout // 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 @@ extends Layout } synchronized (sLock) { + sStaticLayout = reflowed; reflowed.finish(); - if (layoutRef == null || layoutRef.get() != reflowed) { - sStaticLayoutRef = new WeakReference<StaticLayout>(reflowed); - } else { - sStaticLayoutRef = layoutRef; - } } } @@ -493,8 +488,7 @@ extends Layout 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; |
