Merge

Wed, 01 Oct 2014 14:37:46 -0700

author
mfang
date
Wed, 01 Oct 2014 14:37:46 -0700
changeset 2574
c9c6b56c7b15
parent 2573
ef53c996e943
parent 2572
31d2a837676f
child 2575
05d50e7f6c95

Merge

     1.1 --- a/.hgtags	Wed Oct 01 14:19:24 2014 -0700
     1.2 +++ b/.hgtags	Wed Oct 01 14:37:46 2014 -0700
     1.3 @@ -319,3 +319,4 @@
     1.4  cde557bc48f5cd0c6b6aa70bdbc7563677379347 jdk8u40-b04
     1.5  a36fce70b505ec15be8353d40d417d331fcce740 jdk8u40-b05
     1.6  7c3d27120b92b6abbd2df910722405dfb02d4399 jdk8u40-b06
     1.7 +2fa3858a281f9deae15bcc49224efd5b951b745d jdk8u40-b07
     2.1 --- a/src/share/classes/com/sun/tools/javac/jvm/Code.java	Wed Oct 01 14:19:24 2014 -0700
     2.2 +++ b/src/share/classes/com/sun/tools/javac/jvm/Code.java	Wed Oct 01 14:37:46 2014 -0700
     2.3 @@ -2032,12 +2032,11 @@
     2.4  
     2.5      void adjustAliveRanges(int oldCP, int delta) {
     2.6          for (LocalVar localVar: lvar) {
     2.7 -            if (localVar == null) {
     2.8 -                return;
     2.9 -            }
    2.10 -            for (LocalVar.Range range: localVar.aliveRanges) {
    2.11 -                if (range.closed() && range.start_pc + range.length >= oldCP) {
    2.12 -                    range.length += delta;
    2.13 +            if (localVar != null) {
    2.14 +                for (LocalVar.Range range: localVar.aliveRanges) {
    2.15 +                    if (range.closed() && range.start_pc + range.length >= oldCP) {
    2.16 +                        range.length += delta;
    2.17 +                    }
    2.18                  }
    2.19              }
    2.20          }
     3.1 --- a/test/tools/javac/flow/LVTHarness.java	Wed Oct 01 14:19:24 2014 -0700
     3.2 +++ b/test/tools/javac/flow/LVTHarness.java	Wed Oct 01 14:37:46 2014 -0700
     3.3 @@ -23,7 +23,7 @@
     3.4  
     3.5  /*
     3.6   * @test
     3.7 - * @bug 7047734 8027660 8037937 8047719
     3.8 + * @bug 7047734 8027660 8037937 8047719 8058708
     3.9   * @summary The LVT is not generated correctly during some try/catch scenarios
    3.10   *          javac crash while creating LVT entry for a local variable defined in
    3.11   *          an inner block
     4.1 --- a/test/tools/javac/flow/tests/TestCaseIf.java	Wed Oct 01 14:19:24 2014 -0700
     4.2 +++ b/test/tools/javac/flow/tests/TestCaseIf.java	Wed Oct 01 14:37:46 2014 -0700
     4.3 @@ -58,4 +58,18 @@
     4.4          }
     4.5          o = "";
     4.6      }
     4.7 +
     4.8 +    @AliveRange(varName="finalLocal", bytecodeStart=11, bytecodeLength=6)
     4.9 +    @AliveRange(varName="used", bytecodeStart=13, bytecodeLength=4)
    4.10 +    void m5(Object o) {
    4.11 +        if (o != null) {
    4.12 +            Object notUsed;
    4.13 +            Object used;
    4.14 +            if (o != null) {
    4.15 +                final Object finalLocal = null;
    4.16 +                used = null;
    4.17 +                if (o == null) {}
    4.18 +            }
    4.19 +        }
    4.20 +    }
    4.21  }

mercurial