diff --git a/ChangeLog b/ChangeLog index 3a285e5df7..5cca8c8aed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,8 @@ Fri Sep 1 10:36:45 2000 Yukihiro Matsumoto Fri Sep 1 10:36:29 2000 Yukihiro Matsumoto + * eval.c (POP_SCOPE): recycled scopes too much + * eval.c (Init_eval): extend room for stack allowance. * eval.c (POP_SCOPE): frees scope too much. diff --git a/eval.c b/eval.c index b485cf8ca0..04b922a66a 100644 --- a/eval.c +++ b/eval.c @@ -801,7 +801,8 @@ static rb_thread_t curr_thread = 0; if (!(ruby_scope->flag & SCOPE_MALLOC)) {\ ruby_scope->local_vars = 0; \ ruby_scope->local_tbl = 0; \ - if (ruby_scope != top_scope) { \ + if (!(ruby_scope->flag & SCOPE_DONT_RECYCLE) && \ + ruby_scope != top_scope) { \ rb_gc_force_recycle((VALUE)ruby_scope);\ } \ } \