From b7efdd59a5d66ade502b399278488cfb1992ab4b Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sat, 19 Dec 2009 16:30:01 +0000 Subject: [PATCH] fix another bit-array-allocation problem in bytecode compiler svn: r17358 --- src/mzscheme/src/fun.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/mzscheme/src/fun.c b/src/mzscheme/src/fun.c index 9827180bed..91f71efefe 100644 --- a/src/mzscheme/src/fun.c +++ b/src/mzscheme/src/fun.c @@ -1505,18 +1505,13 @@ scheme_resolve_closure_compilation(Scheme_Object *_data, Resolve_Info *info, && (offset || !has_tl) /* either need args, or treat as convert becasue it's fully closed */ ) { /* Take over closure_map to be the convert map, instead. */ - int new_boxes_size; - convert_map = closure_map; convert_size = offset; - if (convert_boxes) - new_boxes_size = boxmap_size(convert_size + data->num_params + (has_tl ? 1 : 0)); - else - new_boxes_size = 0; - if (has_tl || convert_boxes || cl->flonum_map) { + int new_boxes_size; int sz; + new_boxes_size = boxmap_size(convert_size + data->num_params + (has_tl ? 1 : 0)); sz = ((has_tl ? sizeof(mzshort) : 0) + new_boxes_size * sizeof(mzshort)); closure_map = (mzshort *)scheme_malloc_atomic(sz); memset(closure_map, 0, sz); @@ -1581,7 +1576,7 @@ scheme_resolve_closure_compilation(Scheme_Object *_data, Resolve_Info *info, : 0)), NULL); if (cl->flonum_map && cl->flonum_map[i]) - boxmap_set(closure_map, i + convert_size, 2, data->closure_size); + boxmap_set(closure_map, i + convert_size, 2, closure_size); } if (expanded_already && !just_compute_lift) SCHEME_CLOSURE_DATA_FLAGS(data) |= CLOS_HAS_TYPED_ARGS;