package cute.instrument;
import soot.jimple.Stmt;
import soot.jimple.EnterMonitorStmt;
import soot.jimple.ExitMonitorStmt;
import soot.util.Chain;
/**
* .
* User: Koushik Sen (ksen@cs.uiuc.edu)
* Date: Nov 7, 2005
* Time: 5:22:06 PM
*/
public class InstrumentMonitorStatements {
public static void instrument(Stmt s, Chain units,boolean isConcurrent,int lineNo){
if(isConcurrent){
if(s instanceof EnterMonitorStmt){
AddCallWithObject.instrument(((EnterMonitorStmt)s).getOp(),units,s,"lock",true,lineNo);
} else if(s instanceof ExitMonitorStmt){
AddCallWithObject.instrument(((ExitMonitorStmt)s).getOp(),units,s,"unlock",false,lineNo);
}
}
}
}