diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java
index 0db00f0..f7ac75a 100644
--- a/core/java/android/text/StaticLayout.java
+++ b/core/java/android/text/StaticLayout.java
@@ -632,11 +632,7 @@
             bottom = fm.bottom;
         }
 
-        boolean firstLine = (j == 0);
-        boolean currentLineIsTheLastVisibleOne = (j + 1 == mMaximumVisibleLineCount);
-        boolean lastLine = currentLineIsTheLastVisibleOne || (end == bufEnd);
-
-        if (firstLine) {
+        if (j == 0) {
             if (trackPad) {
                 mTopPadding = top - above;
             }
@@ -645,10 +641,7 @@
                 above = top;
             }
         }
-
-        int extra;
-
-        if (lastLine) {
+        if (end == bufEnd) {
             if (trackPad) {
                 mBottomPadding = bottom - below;
             }
@@ -658,8 +651,9 @@
             }
         }
 
+        int extra;
 
-        if (needMultiply && !lastLine) {
+        if (needMultiply && end != bufEnd) {
             double ex = (below - above) * (spacingmult - 1) + spacingadd;
             if (ex >= 0) {
                 extra = (int)(ex + EXTRA_ROUNDING);
@@ -696,6 +690,8 @@
         if (ellipsize != null) {
             // If there is only one line, then do any type of ellipsis except when it is MARQUEE
             // if there are multiple lines, just allow END ellipsis on the last line
+            boolean firstLine = (j == 0);
+            boolean currentLineIsTheLastVisibleOne = (j + 1 == mMaximumVisibleLineCount);
             boolean forceEllipsis = moreChars && (mLineCount + 1 == mMaximumVisibleLineCount);
 
             boolean doEllipsis =
