1 20 21 26 27 28 29 30 31 package soot.baf.internal; 32 33 import soot.*; 34 import soot.baf.*; 35 import soot.baf.*; 36 import soot.util.*; 37 import java.util.*; 38 39 public class BFieldPutInst extends AbstractInst implements FieldPutInst 40 { 41 SootFieldRef fieldRef; 42 43 public BFieldPutInst(SootFieldRef fieldRef) 44 { 45 if( fieldRef.isStatic() ) throw new RuntimeException ("wrong static-ness"); 46 this.fieldRef = fieldRef; 47 } 48 49 public int getInCount() 50 { 51 return 2; 52 } 53 54 public int getOutCount() 55 { 56 return 0; 57 } 58 59 60 61 public Object clone() 62 { 63 return new BFieldPutInst(fieldRef); 64 } 65 66 public int getInMachineCount() 67 { 68 return JasminClass.sizeOfType(fieldRef.type()) + 1; 69 } 70 71 public int getOutMachineCount() 72 { 73 return 0; 74 } 75 76 77 final public String getName() { return "fieldput"; } 78 final String getParameters() 79 { 80 return " " + fieldRef.getSignature(); 81 } 82 protected void getParameters( UnitPrinter up ) { 83 up.literal(" "); 84 up.fieldRef(fieldRef); 85 } 86 87 public SootFieldRef getFieldRef() { return fieldRef; } 88 public SootField getField() { return fieldRef.resolve(); } 89 90 public void apply(Switch sw) 91 { 92 ((InstSwitch) sw).caseFieldPutInst(this); 93 } 94 public boolean containsFieldRef() { return true; } 95 } 96 | Popular Tags |