diff --git a/src/racket/src/resolve.c b/src/racket/src/resolve.c index dbcd05e7ca..5fdedd2382 100644 --- a/src/racket/src/resolve.c +++ b/src/racket/src/resolve.c @@ -1933,7 +1933,7 @@ resolve_closure_compilation(Scheme_Object *_data, Resolve_Info *info, if (!convert_boxes) convert_boxes = allocate_boxmap(offset); scheme_boxmap_set(convert_boxes, cp, bit, 0); - if (need_flags) + if (need_flags && (bit > CLOS_TYPE_TYPE_OFFSET)) scheme_boxmap_set(closure_map, cp + data->num_params, bit, need_flags); } closure_map[cp] = old_pos; diff --git a/src/racket/src/schvers.h b/src/racket/src/schvers.h index d164db2cdd..1aca10f549 100644 --- a/src/racket/src/schvers.h +++ b/src/racket/src/schvers.h @@ -13,12 +13,12 @@ consistently.) */ -#define MZSCHEME_VERSION "5.3.1.7" +#define MZSCHEME_VERSION "5.3.1.8" #define MZSCHEME_VERSION_X 5 #define MZSCHEME_VERSION_Y 3 #define MZSCHEME_VERSION_Z 1 -#define MZSCHEME_VERSION_W 7 +#define MZSCHEME_VERSION_W 8 #define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y) #define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W) diff --git a/src/racket/src/validate.c b/src/racket/src/validate.c index d6d1a4d734..ac2019109b 100644 --- a/src/racket/src/validate.c +++ b/src/racket/src/validate.c @@ -1029,6 +1029,8 @@ static void validate_unclosed_procedure(Mz_CPort *port, Scheme_Object *expr, int pos = data->num_params + i; int ct; ct = scheme_boxmap_get(map, pos, data->closure_size); + if (ct == CLOS_TYPE_BOXED) + scheme_ill_formed_code(port); if (ct > CLOS_TYPE_TYPE_OFFSET) { if (vld != (VALID_TYPED + (ct - CLOS_TYPE_TYPE_OFFSET))) vld = VALID_NOT;