1.1 --- a/src/share/classes/com/sun/tools/javac/jvm/Code.java Wed May 28 11:07:07 2014 -0700 1.2 +++ b/src/share/classes/com/sun/tools/javac/jvm/Code.java Thu May 29 15:28:01 2014 +0100 1.3 @@ -1925,6 +1925,13 @@ 1.4 return aliveRanges.isEmpty() ? null : aliveRanges.get(aliveRanges.size() - 1); 1.5 } 1.6 1.7 + void removeLastRange() { 1.8 + Range lastRange = lastRange(); 1.9 + if (lastRange != null) { 1.10 + aliveRanges.remove(lastRange); 1.11 + } 1.12 + } 1.13 + 1.14 @Override 1.15 public String toString() { 1.16 if (aliveRanges == null) { 1.17 @@ -1955,9 +1962,7 @@ 1.18 } 1.19 } 1.20 } else { 1.21 - if (!aliveRanges.isEmpty()) { 1.22 - aliveRanges.remove(aliveRanges.size() - 1); 1.23 - } 1.24 + removeLastRange(); 1.25 } 1.26 } 1.27 1.28 @@ -1965,16 +1970,14 @@ 1.29 if (aliveRanges.isEmpty()) { 1.30 return false; 1.31 } 1.32 - Range range = lastRange(); 1.33 - return range.length == Character.MAX_VALUE; 1.34 + return lastRange().length == Character.MAX_VALUE; 1.35 } 1.36 1.37 public boolean isLastRangeInitialized() { 1.38 if (aliveRanges.isEmpty()) { 1.39 return false; 1.40 } 1.41 - Range range = lastRange(); 1.42 - return range.start_pc != Character.MAX_VALUE; 1.43 + return lastRange().start_pc != Character.MAX_VALUE; 1.44 } 1.45 1.46 public Range getWidestRange() { 1.47 @@ -2095,7 +2098,7 @@ 1.48 v.closeRange(length); 1.49 putVar(v); 1.50 } else { 1.51 - v.lastRange().start_pc = Character.MAX_VALUE; 1.52 + v.removeLastRange(); 1.53 } 1.54 } 1.55 }