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 BFieldGetInst extends AbstractInst implements FieldGetInst 39 { 40 SootFieldRef fieldRef; 41 42 public BFieldGetInst(SootFieldRef fieldRef) 43 { 44 if( fieldRef.isStatic() ) throw new RuntimeException ("wrong static-ness"); 45 this.fieldRef = fieldRef; 46 } 47 48 public int getInCount() 49 { 50 return 1; 51 } 52 53 54 public Object clone() 55 { 56 return new BFieldGetInst(fieldRef); 57 } 58 59 public int getInMachineCount() 60 { 61 return 1; 62 } 63 64 public int getOutCount() 65 { 66 return 1; 67 } 68 69 public int getOutMachineCount() 70 { 71 return JasminClass.sizeOfType(fieldRef.type()); 72 } 73 74 75 final public String getName() { return "fieldget"; } 76 final String getParameters() 77 { 78 return " " + fieldRef.getSignature(); 79 } 80 protected void getParameters(UnitPrinter up) { 81 up.literal(" "); 82 up.fieldRef(fieldRef); 83 } 84 85 public SootFieldRef getFieldRef() { return fieldRef; } 86 public SootField getField() { return fieldRef.resolve(); } 87 88 public void apply(Switch sw) 89 { 90 ((InstSwitch) sw).caseFieldGetInst(this); 91 } 92 public boolean containsFieldRef() { return true; } 93 } 94 | Popular Tags |