home *** CD-ROM | disk | FTP | other *** search
- package sun.tools.asm;
-
- import sun.tools.java.FieldDefinition;
-
- public final class Label extends Instruction {
- static int labelCount;
- // $FF: renamed from: ID int
- int field_0;
- int depth;
- FieldDefinition[] locals;
-
- public Label() {
- super(0, -1, (Object)null);
- this.field_0 = ++labelCount;
- }
-
- Label getDestination() {
- Label var1 = this;
- if (super.next != null && super.next != this && this.depth == 0) {
- this.depth = 1;
- switch (super.next.opc) {
- case -1:
- var1 = ((Label)super.next).getDestination();
- break;
- case 18:
- case 19:
- if (super.next.value instanceof Integer) {
- Instruction var2 = super.next.next;
- if (var2.opc == -1) {
- var2 = ((Label)var2).getDestination().next;
- }
-
- if (var2.opc == 153) {
- if ((Integer)super.next.value == 0) {
- var1 = (Label)var2.value;
- } else {
- var1 = new Label();
- var1.next = var2.next;
- var2.next = var1;
- }
-
- var1 = var1.getDestination();
- } else if (var2.opc == 154) {
- if ((Integer)super.next.value == 0) {
- var1 = new Label();
- var1.next = var2.next;
- var2.next = var1;
- } else {
- var1 = (Label)var2.value;
- }
-
- var1 = var1.getDestination();
- }
- }
- break;
- case 167:
- var1 = ((Label)super.next.value).getDestination();
- }
-
- this.depth = 0;
- }
-
- return var1;
- }
-
- public String toString() {
- String var1 = "$" + this.field_0 + ":";
- if (super.value != null) {
- var1 = var1 + " stack=" + super.value;
- }
-
- return var1;
- }
- }
-