src/share/classes/com/sun/tools/javac/comp/Flow.java

changeset 1879
3b4f92a3797f
parent 1802
8fb68f73d4b1
child 1899
c60a5099863a
equal deleted inserted replaced
1878:565341d436e2 1879:3b4f92a3797f
1943 unrefdResources.remove(resVar.sym); 1943 unrefdResources.remove(resVar.sym);
1944 } 1944 }
1945 } 1945 }
1946 } 1946 }
1947 1947
1948 /* The analysis of each catch should be independent.
1949 * Each one should have the same initial values of inits and
1950 * uninits.
1951 */
1952 final Bits initsCatchPrev = new Bits(initsTry);
1953 final Bits uninitsCatchPrev = new Bits(uninitsTry);
1954
1948 for (List<JCCatch> l = tree.catchers; l.nonEmpty(); l = l.tail) { 1955 for (List<JCCatch> l = tree.catchers; l.nonEmpty(); l = l.tail) {
1949 JCVariableDecl param = l.head.param; 1956 JCVariableDecl param = l.head.param;
1950 inits.assign(initsTry); 1957 inits.assign(initsCatchPrev);
1951 uninits.assign(uninitsTry); 1958 uninits.assign(uninitsCatchPrev);
1952 scan(param); 1959 scan(param);
1953 inits.incl(param.sym.adr); 1960 inits.incl(param.sym.adr);
1954 uninits.excl(param.sym.adr); 1961 uninits.excl(param.sym.adr);
1955 scan(l.head.body); 1962 scan(l.head.body);
1956 initsEnd.andSet(inits); 1963 initsEnd.andSet(inits);

mercurial