--- gforth/engine/main.c 2005/04/26 19:25:43 1.149 +++ gforth/engine/main.c 2005/04/28 18:14:30 1.150 @@ -524,13 +524,15 @@ Address dict_alloc_read(FILE *file, Cell #if defined(HAVE_MMAP) if (offset==0) { - Address image1; image=alloc_mmap(dictsize); - debugp(stderr,"try mmap($%lx, $%lx, ..., MAP_FIXED|MAP_FILE, imagefile, 0); ", (long)image, (long)imagesize); - image1 = mmap(image, imagesize, PROT_EXEC|PROT_READ|PROT_WRITE, MAP_FIXED|MAP_FILE|MAP_PRIVATE, fileno(file), 0); - after_alloc(image1,dictsize); - if (image != (Address)MAP_FAILED && image1 == (Address)MAP_FAILED) - goto read_image; + if (image != (Address)MAP_FAILED) { + Address image1; + debugp(stderr,"try mmap($%lx, $%lx, ..., MAP_FIXED|MAP_FILE, imagefile, 0); ", (long)image, (long)imagesize); + image1 = mmap(image, imagesize, PROT_EXEC|PROT_READ|PROT_WRITE, MAP_FIXED|MAP_FILE|MAP_PRIVATE, fileno(file), 0); + after_alloc(image1,dictsize); + if (image1 == (Address)MAP_FAILED) + goto read_image; + } } #endif /* defined(HAVE_MMAP) */ if (image == (Address)MAP_FAILED) {