OSDN Git Service

Ensure layout in getExtendedPadding calls
authorRaph Levien <raph@google.com>
Tue, 2 Sep 2014 21:22:23 +0000 (14:22 -0700)
committerRaph Levien <raph@google.com>
Tue, 2 Sep 2014 21:23:18 +0000 (14:23 -0700)
There are cases in which getExtendedPaddingTop() and Bottom can get
called even without a valid layout. This patch just makes sure there
is some reasonable layout available.

Fix for bug 14819392 "java.lang.NullPointerException in
android.widget.TextView"

Change-Id: I203899402ddfe857a688b16b7855a8991eee82b7

core/java/android/widget/TextView.java

index 9b3a1e0..3e1b674 100644 (file)
@@ -1861,6 +1861,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
             return getCompoundPaddingTop();
         }
 
+        if (mLayout == null) {
+            assumeLayout();
+        }
+
         if (mLayout.getLineCount() <= mMaximum) {
             return getCompoundPaddingTop();
         }
@@ -1894,6 +1898,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
             return getCompoundPaddingBottom();
         }
 
+        if (mLayout == null) {
+            assumeLayout();
+        }
+
         if (mLayout.getLineCount() <= mMaximum) {
             return getCompoundPaddingBottom();
         }