1538 return position; |
1538 return position; |
1539 } |
1539 } |
1540 // local variable |
1540 // local variable |
1541 case LOCAL_VARIABLE: { |
1541 case LOCAL_VARIABLE: { |
1542 final int table_length = nextChar(); |
1542 final int table_length = nextChar(); |
|
1543 final int[] newLvarOffset = new int[table_length]; |
|
1544 final int[] newLvarLength = new int[table_length]; |
|
1545 final int[] newLvarIndex = new int[table_length]; |
|
1546 |
|
1547 for (int i = 0; i < table_length; ++i) { |
|
1548 newLvarOffset[i] = nextChar(); |
|
1549 newLvarLength[i] = nextChar(); |
|
1550 newLvarIndex[i] = nextChar(); |
|
1551 } |
|
1552 |
1543 final TypeAnnotationPosition position = |
1553 final TypeAnnotationPosition position = |
1544 TypeAnnotationPosition.localVariable(readTypePath()); |
1554 TypeAnnotationPosition.localVariable(readTypePath()); |
1545 |
1555 position.lvarOffset = newLvarOffset; |
1546 position.lvarOffset = new int[table_length]; |
1556 position.lvarLength = newLvarLength; |
1547 position.lvarLength = new int[table_length]; |
1557 position.lvarIndex = newLvarIndex; |
1548 position.lvarIndex = new int[table_length]; |
|
1549 |
|
1550 for (int i = 0; i < table_length; ++i) { |
|
1551 position.lvarOffset[i] = nextChar(); |
|
1552 position.lvarLength[i] = nextChar(); |
|
1553 position.lvarIndex[i] = nextChar(); |
|
1554 } |
|
1555 return position; |
1558 return position; |
1556 } |
1559 } |
1557 // resource variable |
1560 // resource variable |
1558 case RESOURCE_VARIABLE: { |
1561 case RESOURCE_VARIABLE: { |
1559 final int table_length = nextChar(); |
1562 final int table_length = nextChar(); |
|
1563 final int[] newLvarOffset = new int[table_length]; |
|
1564 final int[] newLvarLength = new int[table_length]; |
|
1565 final int[] newLvarIndex = new int[table_length]; |
|
1566 |
|
1567 for (int i = 0; i < table_length; ++i) { |
|
1568 newLvarOffset[i] = nextChar(); |
|
1569 newLvarLength[i] = nextChar(); |
|
1570 newLvarIndex[i] = nextChar(); |
|
1571 } |
|
1572 |
1560 final TypeAnnotationPosition position = |
1573 final TypeAnnotationPosition position = |
1561 TypeAnnotationPosition.resourceVariable(readTypePath()); |
1574 TypeAnnotationPosition.resourceVariable(readTypePath()); |
1562 |
1575 position.lvarOffset = newLvarOffset; |
1563 position.lvarOffset = new int[table_length]; |
1576 position.lvarLength = newLvarLength; |
1564 position.lvarLength = new int[table_length]; |
1577 position.lvarIndex = newLvarIndex; |
1565 position.lvarIndex = new int[table_length]; |
|
1566 |
|
1567 for (int i = 0; i < table_length; ++i) { |
|
1568 position.lvarOffset[i] = nextChar(); |
|
1569 position.lvarLength[i] = nextChar(); |
|
1570 position.lvarIndex[i] = nextChar(); |
|
1571 } |
|
1572 return position; |
1578 return position; |
1573 } |
1579 } |
1574 // exception parameter |
1580 // exception parameter |
1575 case EXCEPTION_PARAMETER: { |
1581 case EXCEPTION_PARAMETER: { |
1576 final int exception_index = nextChar(); |
1582 final int exception_index = nextChar(); |