fix bug in procedure? test optimization
svn: r8225
This commit is contained in:
parent
7f3a5c13c2
commit
8f87430c49
|
@ -2385,7 +2385,9 @@ static Scheme_Object *optimize_application2(Scheme_Object *o, Optimize_Info *inf
|
|||
}
|
||||
if (SAME_TYPE(SCHEME_TYPE(app->rand), scheme_local_type)) {
|
||||
int offset;
|
||||
if (scheme_optimize_info_lookup(info, SCHEME_LOCAL_POS(app->rand), &offset)) {
|
||||
Scheme_Object *expr;
|
||||
expr = scheme_optimize_reverse(info, SCHEME_LOCAL_POS(app->rand), 0);
|
||||
if (scheme_optimize_info_lookup(info, SCHEME_LOCAL_POS(expr), &offset)) {
|
||||
info->preserves_marks = 1;
|
||||
info->single_result = 1;
|
||||
return scheme_true;
|
||||
|
|
|
@ -988,7 +988,7 @@ Scheme_Object *scheme_clone_closure_compilation(int dup_ok, Scheme_Object *_data
|
|||
int *flags, sz;
|
||||
|
||||
data = (Scheme_Closure_Data *)_data;
|
||||
|
||||
|
||||
body = scheme_optimize_clone(dup_ok, data->code, info, delta, closure_depth + data->num_params);
|
||||
if (!body) return NULL;
|
||||
|
||||
|
@ -1001,6 +1001,9 @@ Scheme_Object *scheme_clone_closure_compilation(int dup_ok, Scheme_Object *_data
|
|||
memcpy(cl, data->closure_map, sizeof(Closure_Info));
|
||||
data2->closure_map = (mzshort *)cl;
|
||||
|
||||
/* We don't have to update base_closure_map, because
|
||||
it will get re-computed as the closure is re-optimized. */
|
||||
|
||||
sz = sizeof(int) * data2->num_params;
|
||||
flags = (int *)scheme_malloc_atomic(sz);
|
||||
memcpy(flags, cl->local_flags, sz);
|
||||
|
|
Loading…
Reference in New Issue
Block a user