1 20 21 26 27 package soot.baf.internal; 28 29 import soot.*; 30 import soot.baf.*; 31 import soot.util.*; 32 import java.util.*; 33 34 public class BInterfaceInvokeInst extends AbstractInvokeInst 35 implements InterfaceInvokeInst 36 { 37 int argCount; 38 39 public int getInCount() 40 { 41 return methodRef.parameterTypes().size()+1; 42 43 } 44 45 public int getInMachineCount() 46 { 47 return super.getInMachineCount() +1; 48 } 49 50 51 public BInterfaceInvokeInst(SootMethodRef methodRef, int argCount) 52 { 53 if( methodRef.isStatic() ) throw new RuntimeException ("wrong static-ness"); 54 this.methodRef = methodRef; this.argCount = argCount; 55 } 56 57 58 public Object clone() 59 { 60 return new BInterfaceInvokeInst(methodRef, getArgCount()); 61 } 62 63 64 65 final public String getName() { return "interfaceinvoke"; } 66 final String getParameters() 67 { return super.getParameters() + " " + argCount; } 68 protected void getParameters(UnitPrinter up) { 69 super.getParameters(up); 70 up.literal(" "); 71 up.literal(new Integer (argCount).toString()); 72 } 73 74 public int getArgCount() { return argCount; } 75 public void setArgCount(int x) { argCount = x; } 76 77 public void apply(Switch sw) 78 { 79 ((InstSwitch) sw).caseInterfaceInvokeInst(this); 80 } 81 } 82 83 84 85 86 | Popular Tags |