1.1 --- a/src/share/classes/com/sun/tools/classfile/StackMapTable_attribute.java Tue May 19 11:43:50 2009 -0700 1.2 +++ b/src/share/classes/com/sun/tools/classfile/StackMapTable_attribute.java Tue May 19 11:50:54 2009 -0700 1.3 @@ -107,6 +107,8 @@ 1.4 return 1; 1.5 } 1.6 1.7 + public abstract int getOffsetDelta(); 1.8 + 1.9 public abstract <R,D> R accept(Visitor<R,D> visitor, D data); 1.10 1.11 public final int frame_type; 1.12 @@ -130,6 +132,10 @@ 1.13 public <R, D> R accept(Visitor<R, D> visitor, D data) { 1.14 return visitor.visit_same_frame(this, data); 1.15 } 1.16 + 1.17 + public int getOffsetDelta() { 1.18 + return frame_type; 1.19 + } 1.20 } 1.21 1.22 public static class same_locals_1_stack_item_frame extends stack_map_frame { 1.23 @@ -149,6 +155,10 @@ 1.24 return visitor.visit_same_locals_1_stack_item_frame(this, data); 1.25 } 1.26 1.27 + public int getOffsetDelta() { 1.28 + return frame_type - 64; 1.29 + } 1.30 + 1.31 public final verification_type_info[] stack; 1.32 } 1.33 1.34 @@ -170,6 +180,10 @@ 1.35 return visitor.visit_same_locals_1_stack_item_frame_extended(this, data); 1.36 } 1.37 1.38 + public int getOffsetDelta() { 1.39 + return offset_delta; 1.40 + } 1.41 + 1.42 public final int offset_delta; 1.43 public final verification_type_info[] stack; 1.44 } 1.45 @@ -189,6 +203,10 @@ 1.46 return visitor.visit_chop_frame(this, data); 1.47 } 1.48 1.49 + public int getOffsetDelta() { 1.50 + return offset_delta; 1.51 + } 1.52 + 1.53 public final int offset_delta; 1.54 } 1.55 1.56 @@ -207,6 +225,10 @@ 1.57 return visitor.visit_same_frame_extended(this, data); 1.58 } 1.59 1.60 + public int getOffsetDelta() { 1.61 + return offset_delta; 1.62 + } 1.63 + 1.64 public final int offset_delta; 1.65 } 1.66 1.67 @@ -232,6 +254,10 @@ 1.68 return visitor.visit_append_frame(this, data); 1.69 } 1.70 1.71 + public int getOffsetDelta() { 1.72 + return offset_delta; 1.73 + } 1.74 + 1.75 public final int offset_delta; 1.76 public final verification_type_info[] locals; 1.77 } 1.78 @@ -266,6 +292,10 @@ 1.79 return visitor.visit_full_frame(this, data); 1.80 } 1.81 1.82 + public int getOffsetDelta() { 1.83 + return offset_delta; 1.84 + } 1.85 + 1.86 public final int offset_delta; 1.87 public final int number_of_locals; 1.88 public final verification_type_info[] locals; 1.89 @@ -308,7 +338,7 @@ 1.90 } 1.91 } 1.92 1.93 - verification_type_info(int tag) { 1.94 + protected verification_type_info(int tag) { 1.95 this.tag = tag; 1.96 } 1.97