/*
* Copyright 2012 Phil Pratt-Szeliga and other contributors
* http://chirrup.org/
*
* See the file LICENSE for copying permission.
*/
package org.trifort.rootbeer.generate.opencl.body;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.trifort.rootbeer.generate.opencl.OpenCLScene;
import soot.SootClass;
import soot.Trap;
import soot.Unit;
public class TrapItem {
private int m_TrapNum;
private List<Unit> m_TryUnits;
private Unit m_Handler;
private SootClass m_Exception;
TrapItem(Trap t, Iterator<Unit> iter, int trap_num, SootClass exception) {
m_TrapNum = trap_num;
m_TryUnits = new ArrayList<Unit>();
boolean found_start = false;
boolean found_end = false;
while(iter.hasNext()){
Unit next = iter.next();
if(t.getBeginUnit().equals(next)){
found_start = true;
}
if(t.getEndUnit().equals(next)){
found_end = true;
}
if(found_start && !found_end){
m_TryUnits.add(next);
}
}
m_Handler = t.getHandlerUnit();
m_Exception = exception;
}
List<Unit> getUnits() {
return m_TryUnits;
}
int getTrapNum() {
return m_TrapNum;
}
boolean unitIsHandler(Unit next) {
return m_Handler.equals(next);
}
SootClass getException(){
return m_Exception;
}
}