1 21 package proguard.classfile.instruction; 22 23 import proguard.classfile.*; 24 import proguard.classfile.instruction.visitor.InstructionVisitor; 25 import proguard.classfile.attribute.CodeAttribute; 26 27 33 public abstract class SwitchInstruction extends Instruction 34 { 35 public int defaultOffset; 36 public int[] jumpOffsets; 37 38 39 42 public SwitchInstruction() {} 43 44 45 48 public SwitchInstruction(byte opcode, 49 int defaultOffset, 50 int[] jumpOffsets) 51 { 52 this.opcode = opcode; 53 this.defaultOffset = defaultOffset; 54 this.jumpOffsets = jumpOffsets; 55 } 56 57 58 63 public SwitchInstruction copy(SwitchInstruction switchInstruction) 64 { 65 this.opcode = switchInstruction.opcode; 66 this.defaultOffset = switchInstruction.defaultOffset; 67 this.jumpOffsets = switchInstruction.jumpOffsets; 68 69 return this; 70 } 71 72 73 75 public String toString(int offset) 76 { 77 return "["+offset+"] "+toString()+" (target="+(offset+defaultOffset)+")"; 78 } 79 80 81 83 public String toString() 84 { 85 return getName()+" ("+jumpOffsets.length+" offsets, default="+defaultOffset+")"; 86 } 87 } 88 | Popular Tags |