} else {
cm = doCompile(method, os, level, true);
}
int end = os.getLength();
final VmAddress nativeCode = (VmAddress) cm.getCodeStart().getObject();
final VmCompiledExceptionHandler[] eTable;
final VmAddress defExHandler;
final VmByteCode bc;
final VmAddressMap aTable = cm.getAddressTable();
if (!(method.isNative() || abstractM)) {
final NativeStream.ObjectRef defExHRef = cm
.getDefExceptionHandler();
if (defExHRef != null) {
defExHandler = (VmAddress) defExHRef.getObject();
} else {
defExHandler = null;
}
bc = method.getBytecode();
final CompiledExceptionHandler[] ceh = cm.getExceptionHandlers();
if (ceh != null) {
eTable = new VmCompiledExceptionHandler[ceh.length];
for (int i = 0; i < ceh.length; i++) {
final VmConstClass catchType = bc.getExceptionHandler(i)
.getCatchType();
final VmAddress startPtr = (VmAddress) ceh[i].getStartPc()
.getObject();
final VmAddress endPtr = (VmAddress) ceh[i].getEndPc()
.getObject();
final VmAddress handler = (VmAddress) ceh[i].getHandler()
.getObject();
eTable[i] = new VmCompiledExceptionHandler(catchType,
startPtr, endPtr, handler);
}
} else {