1 17 package org.apache.bcel.generic; 18 19 import java.io.DataOutputStream ; 20 import java.io.IOException ; 21 22 28 public class GOTO extends GotoInstruction implements VariableLengthInstruction { 29 30 34 GOTO() { 35 } 36 37 38 public GOTO(InstructionHandle target) { 39 super(org.apache.bcel.Constants.GOTO, target); 40 } 41 42 43 47 public void dump( DataOutputStream out ) throws IOException { 48 index = getTargetOffset(); 49 if (opcode == org.apache.bcel.Constants.GOTO) { 50 super.dump(out); 51 } else { index = getTargetOffset(); 53 out.writeByte(opcode); 54 out.writeInt(index); 55 } 56 } 57 58 59 62 protected int updatePosition( int offset, int max_offset ) { 63 int i = getTargetOffset(); position += offset; if (Math.abs(i) >= (32767 - max_offset)) { opcode = org.apache.bcel.Constants.GOTO_W; 67 length = 5; 68 return 2; } 70 return 0; 71 } 72 73 74 82 public void accept( Visitor v ) { 83 v.visitVariableLengthInstruction(this); 84 v.visitUnconditionalBranch(this); 85 v.visitBranchInstruction(this); 86 v.visitGotoInstruction(this); 87 v.visitGOTO(this); 88 } 89 } 90 | Popular Tags |