make Error Handler call throw in C, instead of doing messy
Prolog code. git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@335 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
15
C/exec.c
15
C/exec.c
@@ -1250,9 +1250,8 @@ p_clean_ifcp(void) {
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
/* This does very nasty stuff!!!!! */
|
||||
static Int
|
||||
p_jump_env(void) {
|
||||
Int
|
||||
JumpToEnv(Term t) {
|
||||
yamop *min = (yamop *)(PredCatch->CodeOfPred);
|
||||
yamop *max = (yamop *)(PredThrow->CodeOfPred);
|
||||
CELL *cur = ENV, *env;
|
||||
@@ -1274,11 +1273,19 @@ p_jump_env(void) {
|
||||
B->cp_h = H;
|
||||
/* I could backtrack here, but it is easier to leave the unwinding
|
||||
to the emulator */
|
||||
B->cp_a3 = Deref(ARG1);
|
||||
B->cp_a3 = t;
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* This does very nasty stuff!!!!! */
|
||||
static Int
|
||||
p_jump_env(void) {
|
||||
return(JumpToEnv(Deref(ARG1)));
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
InitExecFs(void)
|
||||
{
|
||||
|
Reference in New Issue
Block a user