diff -ur ./InnerClassesAttr.java.orig ./InnerClassesAttr.java --- ./InnerClassesAttr.java.orig 2002-04-16 20:46:14.000000000 -0400 +++ ./InnerClassesAttr.java 2002-12-18 00:46:18.000000000 -0500 @@ -82,4 +82,20 @@ dst.println(); } } + public String[][] getClassNames () + { + ClassType ctype = (ClassType) container; + ConstantPool constants = ctype.getConstants(); + String[][] val = new String[count][2]; + for (int i = 0; i < count; i++) + { + int index; + index = data[4*i] & 0xFFFF; // inner_class_info_index + CpoolClass centry = (CpoolClass)constants.getForced(index, ConstantPool.CLASS); + val[i][0] = centry.getStringName (); + + val[i][1] = Access.toString(data[4*i+3] & 0xFFFF); + } + return val; + } } diff -ur ./Variable.java.orig ./Variable.java --- ./Variable.java.orig 2002-03-07 02:25:31.000000000 -0500 +++ ./Variable.java 2002-12-18 00:48:18.000000000 -0500 @@ -45,6 +45,8 @@ /** The local variable slot number used by this variable. * Not used (by the codegen layer) if !isSimple(). */ int offset = UNASSIGNED; + public int getOffset () { return offset; } + /** Returns true iff assigned to a local variable slot. * Only relevant if isSimple (). */ public final boolean isAssigned () { return offset != UNASSIGNED; } @@ -52,6 +54,9 @@ int start_pc; int end_pc; + public int getStartPC () { return start_pc; } + public int getEndPC () { return end_pc; } + final boolean dead () { return end_pc > 0; } private void setFlag (boolean setting, int flag)