try to speed up eval a bit.

This commit is contained in:
Vitor Santos Costa 2010-01-04 21:16:42 -02:00
parent a792174a0e
commit a7e6c5672e
2 changed files with 13 additions and 5 deletions

View File

@ -120,9 +120,9 @@ Eval(Term t)
}
Term
Yap_Eval(Term t)
Yap_InnerEval(Term t)
{
return Yap_FoundArithError(Eval(t), t);
return Eval(t);
}
#ifdef BEAM

View File

@ -169,16 +169,24 @@ Term STD_PROTO(Yap_eval_atom,(Int));
Term STD_PROTO(Yap_eval_unary,(Int,Term));
Term STD_PROTO(Yap_eval_binary,(Int,Term,Term));
Term STD_PROTO(Yap_Eval,(Term));
Term STD_PROTO(Yap_InnerEval,(Term));
Int STD_PROTO(Yap_ArithError,(yap_error_number,Term,char *msg, ...));
inline EXTERN Term
Yap_Eval(Term t)
{
if (t == 0L || !IsVarTerm(t) || IsNumTerm(t))
return t;
return Yap_InnerEval(t);
}
inline static Term
Yap_FoundArithError(Term t, Term inp)
{
if (Yap_Error_TYPE) {
Yap_Error(Yap_Error_TYPE, (inp ? inp : Yap_Error_Term), Yap_ErrorMessage);
P = FAILCODE;
return 0L;
P = FAILCODE;
return 0L;
}
return t;
}