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:
18
C/errors.c
18
C/errors.c
@@ -1749,24 +1749,10 @@ Error (yap_error_number type, Term where, char *format,...)
|
||||
}
|
||||
nt[1] = MkAtomTerm(LookupAtom(p));
|
||||
if (serious) {
|
||||
choiceptr newb;
|
||||
PredEntry *p = PredThrow;
|
||||
|
||||
CreepFlag = CalculateStackGap();
|
||||
ASP--;
|
||||
newb = ((choiceptr)ASP)-1;
|
||||
newb->cp_h = H;
|
||||
newb->cp_tr = TR;
|
||||
newb->cp_cp = CP;
|
||||
newb->cp_ap = (yamop *)(p->CodeOfPred);
|
||||
newb->cp_env = ENV;
|
||||
newb->cp_b = B;
|
||||
if (type == PURE_ABORT)
|
||||
ARG1 = newb->cp_a1 = MkAtomTerm(LookupAtom("abort"));
|
||||
JumpToEnv(MkAtomTerm(LookupAtom("abort")));
|
||||
else
|
||||
ARG1 = newb->cp_a1 = MkApplTerm(fun, 2, nt);
|
||||
B = newb;
|
||||
ASP = YENV = (CELL *)B;
|
||||
JumpToEnv(CopyTerm(MkApplTerm(fun, 2, nt)));
|
||||
P = (yamop *)FAILCODE;
|
||||
}
|
||||
PrologMode &= ~InErrorMode;
|
||||
|
Reference in New Issue
Block a user