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:
vsc
2002-01-29 05:37:31 +00:00
parent a60e61f507
commit 28128ed29c
6 changed files with 346 additions and 57 deletions

View File

@@ -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)
{