--- gforth/engine/main.c 2010/02/14 18:13:31 1.228 +++ gforth/engine/main.c 2010/04/05 22:17:56 1.229 @@ -313,8 +313,8 @@ static Cell min(Cell a, Cell b) * If the word =CF(DODOES), it's a DOES> CFA * If the word =CF(DOESJUMP), it's a DOES JUMP (2 Cells after DOES>, * possibly containing a jump to dodoes) - * If the word is > (8*sizeof(Cell)-5)); } @@ -1074,7 +1075,7 @@ static void check_prims(Label symbols1[] ia->rel=0; debugp(stderr,"\n absolute immarg: offset %3d",j); } else if ((&(s1[j]))+(*(Cell *)&(s1[j]))+4 == - symbols1[DOESJUMP+1]) { + symbols1[DOER_MAX+1]) { ia->rel=1; debugp(stderr,"\n relative immarg: offset %3d",j); } else { @@ -1093,9 +1094,9 @@ static void check_prims(Label symbols1[] debugp(stderr,"\n"); } decomp_prims = calloc(i,sizeof(PrimInfo *)); - for (i=DOESJUMP+1; iDOESJUMP; i--) { + for (i=npriminfos-1; i>DOER_MAX; i--) { PrimInfo *pi=decomp_prims[i]; if (pi->start==code || (pi->start && memcmp(code,pi->start,pi->length)==0)) return vm_prims[super2[super_costs[pi-priminfos].offset]]; @@ -1820,7 +1821,7 @@ void compile_prim1(Cell *start) if (start==NULL) return; prim = (Label)*start; - if (prim<((Label)(xts+DOESJUMP)) || prim>((Label)(xts+npriminfos))) { + if (prim<((Label)(xts+DOER_MAX)) || prim>((Label)(xts+npriminfos))) { fprintf(stderr,"compile_prim encountered xt %p\n", prim); *start=(Cell)prim; return;