2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
5 package org.apidesign.javap;
9 * @author Jaroslav Tulach <jtulach@netbeans.org>
11 public final class TrapDataIterator {
12 private final java.util.Map<Short, TrapData> exStart = new java.util.HashMap<Short, TrapData>();
13 private final java.util.Map<Short, TrapData> exStop = new java.util.HashMap<Short, TrapData>();
14 private TrapData[] current = new TrapData[10];
15 private int currentCount;
17 TrapDataIterator(Vector exceptionTable) {
18 for (int i=0 ; i < exceptionTable.size(); i++) {
19 final TrapData td = (TrapData)exceptionTable.elementAt(i);
20 exStart.put(td.start_pc, td);
21 exStop.put(td.end_pc, td);
25 public void advanceTo(int i) {
26 TrapData e = exStart.get((short) i);
30 e = exStop.get((short) i);
36 public boolean useTry() {
37 return currentCount > 0;
40 public TrapData[] current() {
44 private void add(TrapData e) {
45 if (currentCount == current.length) {
46 TrapData[] data = new TrapData[currentCount * 2];
47 for (int i = 0; i < currentCount; i++) {
52 current[currentCount++] = e;
55 private void remove(TrapData e) {
57 while (from < currentCount) {
58 if (e == current[from++]) {
62 while (from < currentCount) {
63 current[from - 1] = current[from];