--- gforth/engine/main.c 2002/01/15 10:40:04 1.54 +++ gforth/engine/main.c 2002/01/16 10:40:26 1.55 @@ -61,7 +61,6 @@ jmp_buf throw_jmp_buf; /*# define CA(n) (symbols[(n)])*/ # define CA(n) (symbols[(n)&~0x4000UL]) #elif defined(DOUBLY_INDIRECT) -/* # define CA(n) ((Cell)(symbols+((n)&~0x4000UL))) */ # define CA(n) ({Cell _n = (n); ((Cell)(((_n & 0x4000) ? symbols : xts)+(_n&~0x4000UL)));}) #else # define CA(n) ((Cell)(symbols+((n)&~0x4000UL))) @@ -166,7 +165,7 @@ void relocate(Cell *image, const char *b /* fprintf(stderr,"relocate: image[%d]=%d of %d\n", i, image[i], size/sizeof(Cell)); */ token=image[i]; if(token<0) - switch(token) + switch(token|0x4000) { case CF_NIL : image[i]=0; break; #if !defined(DOUBLY_INDIRECT) @@ -184,13 +183,9 @@ void relocate(Cell *image, const char *b default : /* printf("Code field generation image[%x]:=CA(%x)\n", i, CF(image[i])); */ -#if !defined(DOUBLY_INDIRECT) - if (((token | 0x4000) >= CF(DODOES)) && (token < -0x4000)) - fprintf(stderr,"Doer %d used in this image at $%lx is marked as Xt;\n executing this code will crash.\n",CF((token | 0x4000)),(long)&image[i],VERSION); -#endif - if (CF((token | 0x4000))