1 19 20 package edu.umd.cs.findbugs.ba.bcp; 21 22 import org.apache.bcel.generic.ConstantPoolGen; 23 import org.apache.bcel.generic.Instruction; 24 import org.apache.bcel.generic.InstructionHandle; 25 import org.apache.bcel.generic.MONITORENTER; 26 27 import edu.umd.cs.findbugs.ba.DataflowAnalysisException; 28 import edu.umd.cs.findbugs.ba.vna.ValueNumberFrame; 29 30 35 public class Monitorenter extends OneVariableInstruction { 36 42 public Monitorenter(String varName) { 43 super(varName); 44 } 45 46 @Override 47 public MatchResult match(InstructionHandle handle, ConstantPoolGen cpg, 48 ValueNumberFrame before, ValueNumberFrame after, BindingSet bindingSet) throws DataflowAnalysisException { 49 50 Instruction ins = handle.getInstruction(); 52 if (!(ins instanceof MONITORENTER)) 53 return null; 54 55 Variable lock = new LocalVariable(before.getTopValue()); 58 return addOrCheckDefinition(lock, bindingSet); 59 } 60 } 61 62 | Popular Tags |