diff --git a/C/absmi.c b/C/absmi.c index 4638c5bf8..8921cda49 100644 --- a/C/absmi.c +++ b/C/absmi.c @@ -11363,6 +11363,7 @@ Yap_absmi(int inp) pen = PredMetaCall; ARG2 = Yap_cp_as_integer(B); ARG4 = ModuleName[mod]; + CACHE_A1(); goto execute_end; ENDP(pt1); diff --git a/C/cdmgr.c b/C/cdmgr.c index f129842a9..23d5c3932 100644 --- a/C/cdmgr.c +++ b/C/cdmgr.c @@ -85,8 +85,8 @@ STATIC_PROTO(Int PredForCode,(yamop *, Atom *, UInt *, SMALLUNSGN *)); #define TRYCODE(G,F,N) ( (N)<5 ? (op_numbers)((int)F+(N)*3) : G) #define NEXTOP(V,TYPE) ((yamop *)(&((V)->u.TYPE.next))) -#define IN_BLOCK(P,B,SZ) ((CODEADDR)(P) > (CODEADDR)(B) && \ - (CODEADDR)(P) <= (CODEADDR)(B)+(SZ)) +#define IN_BLOCK(P,B,SZ) ((CODEADDR)(P) >= (CODEADDR)(B) && \ + (CODEADDR)(P) < (CODEADDR)(B)+(SZ)) /****************************************************************** @@ -2540,9 +2540,9 @@ code_in_pred(PredEntry *pp, Atom *pat, UInt *parity, yamop *codeptr) { CODEADDR cl; if (!(pp->PredFlags & DynamicPredFlag)) { - cl = (CODEADDR)ClauseCodeToDynamicClause(clcode); - } else { cl = (CODEADDR)ClauseCodeToStaticClause(clcode); + } else { + cl = (CODEADDR)ClauseCodeToDynamicClause(clcode); } if (IN_BLOCK(codeptr,cl,Yap_SizeOfBlock((CODEADDR)cl))) { clause_was_found(pp, pat, parity);