| 1 19 20 25 26 27 28 29 30 package soot.baf.internal; 31 32 import soot.*; 33 import soot.baf.*; 34 import soot.baf.*; 35 import soot.util.*; 36 import java.util.*; 37 38 public class BStoreInst extends AbstractOpTypeInst implements StoreInst 39 { 40 41 ValueBox localBox; 42 List defBoxes; 43 44 public BStoreInst(Type opType, Local local) 45 { 46 super(opType); 47 localBox = new BafLocalBox(local); 48 defBoxes = new ArrayList(); 49 defBoxes.add(localBox); 50 defBoxes = Collections.unmodifiableList(defBoxes); 51 } 52 53 public int getInCount() 54 { 55 return 1; 56 } 57 58 public Object clone() 59 { 60 return new BStoreInst(getOpType(), getLocal()); 61 } 62 63 public int getInMachineCount() 64 { 65 return JasminClass.sizeOfType(getOpType()); 66 } 67 68 public int getOutCount() 69 { 70 return 0; 71 } 72 73 public int getOutMachineCount() 74 { 75 return 0; 76 } 77 78 final public String getName() { return "store"; } 79 final String getParameters() 80 { return " " + localBox.getValue().toString(); } 81 protected void getParameters(UnitPrinter up ) { 82 up.literal(" "); 83 localBox.toString(up); 84 } 85 86 public void apply(Switch sw) 87 { 88 ((InstSwitch) sw).caseStoreInst(this); 89 } 90 91 92 93 public void setLocal(Local l) 94 { 95 localBox.setValue(l); 96 } 97 98 public Local getLocal() 99 { 100 return (Local) localBox.getValue(); 101 } 102 103 104 public List getDefBoxes() 105 { 106 return defBoxes; 107 } 108 109 110 } 111 | Popular Tags |