1 19 20 25 26 27 28 29 30 31 package soot.grimp.internal; 32 33 import soot.*; 34 import soot.grimp.*; 35 import soot.jimple.internal.*; 36 import soot.jimple.*; 37 import soot.grimp.*; 38 import soot.jimple.internal.*; 39 import soot.util.*; 40 import java.util.*; 41 42 public class GTableSwitchStmt extends JTableSwitchStmt 43 { 44 private static UnitBox[] getTargetBoxesArray(List targets) 46 { 47 UnitBox[] targetBoxes = new UnitBox[targets.size()]; 48 49 for(int i = 0; i < targetBoxes.length; i++) 50 targetBoxes[i] = Grimp.v().newStmtBox((Stmt) targets.get(i)); 51 52 return targetBoxes; 53 } 54 55 public GTableSwitchStmt(Value key, int lowIndex, int highIndex, List targets, 56 Unit defaultTarget) 57 { 58 super(Grimp.v().newExprBox(key), lowIndex, highIndex, 59 getTargetBoxesArray(targets), 60 Grimp.v().newStmtBox(defaultTarget)); 61 } 62 63 64 public Object clone() 65 { 66 return new GTableSwitchStmt(Grimp.cloneIfNecessary(getKey()), getLowIndex(), getHighIndex(), 67 getTargets(), getDefaultTarget()); 68 } 69 70 } 71 72 73 | Popular Tags |