1650 int end = gaps.head.intValue(); |
1650 int end = gaps.head.intValue(); |
1651 registerCatch(tree.pos(), |
1651 registerCatch(tree.pos(), |
1652 startpc, end, code.curCP(), |
1652 startpc, end, code.curCP(), |
1653 catchType); |
1653 catchType); |
1654 if (subCatch.type.isAnnotated()) { |
1654 if (subCatch.type.isAnnotated()) { |
1655 // All compounds share the same position, simply update the |
1655 for (Attribute.TypeCompound tc : |
1656 // first one. |
1656 subCatch.type.getAnnotationMirrors()) { |
1657 subCatch.type.getAnnotationMirrors().head.position.type_index = catchType; |
1657 tc.position.type_index = catchType; |
|
1658 } |
1658 } |
1659 } |
1659 } |
1660 } |
1660 gaps = gaps.tail; |
1661 gaps = gaps.tail; |
1661 startpc = gaps.head.intValue(); |
1662 startpc = gaps.head.intValue(); |
1662 gaps = gaps.tail; |
1663 gaps = gaps.tail; |
1666 int catchType = makeRef(tree.pos(), subCatch.type); |
1667 int catchType = makeRef(tree.pos(), subCatch.type); |
1667 registerCatch(tree.pos(), |
1668 registerCatch(tree.pos(), |
1668 startpc, endpc, code.curCP(), |
1669 startpc, endpc, code.curCP(), |
1669 catchType); |
1670 catchType); |
1670 if (subCatch.type.isAnnotated()) { |
1671 if (subCatch.type.isAnnotated()) { |
1671 // All compounds share the same position, simply update the |
1672 for (Attribute.TypeCompound tc : |
1672 // first one. |
1673 subCatch.type.getAnnotationMirrors()) { |
1673 subCatch.type.getAnnotationMirrors().head.position.type_index = catchType; |
1674 tc.position.type_index = catchType; |
|
1675 } |
1674 } |
1676 } |
1675 } |
1677 } |
1676 } |
1678 } |
1677 VarSymbol exparam = tree.param.sym; |
1679 VarSymbol exparam = tree.param.sym; |
1678 code.statBegin(tree.pos); |
1680 code.statBegin(tree.pos); |