1 20 21 26 27 28 29 30 31 32 package soot.jimple.internal; 33 34 import soot.*; 35 import soot.jimple.*; 36 import soot.util.*; 37 import java.util.*; 38 39 public class JSpecialInvokeExpr extends AbstractSpecialInvokeExpr 40 { 41 public JSpecialInvokeExpr(Local base, SootMethodRef methodRef, List args) 42 { 43 super(Jimple.v().newLocalBox(base), methodRef, 44 (ValueBox[]) new ImmediateBox[args.size()]); 45 46 for(int i = 0; i < args.size(); i++) { 47 this.argBoxes[i] = Jimple.v().newImmediateBox((Value) args.get(i)); 48 } 49 } 50 51 JSpecialInvokeExpr(Local base, SootMethodRef methodRef, ValueBox[] args) 52 { 53 super(Jimple.v().newLocalBox(base), methodRef, args); 54 } 55 56 57 public Object clone() 58 { 59 ArrayList clonedArgs = new ArrayList(getArgCount()); 60 61 for(int i = 0; i < getArgCount(); i++) { 62 clonedArgs.add(i, getArg(i)); 63 } 64 65 return new JSpecialInvokeExpr((Local) getBase(), methodRef, clonedArgs); 66 } 67 } 68 | Popular Tags |