diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-09-24 05:53:43 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-09-24 05:53:43 +0000 |
commit | c0a998d027eac8e9dc6d85b4b56c5e5bc87024a0 (patch) | |
tree | 49adb0e44abfd9d14f9c47517039e333bb98c50a /gc.c | |
parent | 0c9d76889af8e00a946dbe8de33568fc87bdd983 (diff) |
* parse.y (rb_parser_append_print): should handle prelude.
[llama@u01.gate0]
* parse.y (rb_parser_while_loop): ditto.
* array.c (rb_ary_subseq): original object might be modified after
sharing data creation. [ruby-dev:24327]
* array.c (rb_ary_replace): ditto.
* array.c (ary_make_shared): freeze shared array. [ruby-dev:24325]
* struct.c (struct_members): always check struct size and size of
members list in the class. [ruby-dev:24320]
* string.c (rb_str_sub_bang): check if string is not modified
during iteration. [ruby-dev:24315]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 16 |
1 files changed, 1 insertions, 15 deletions
@@ -178,7 +178,6 @@ ruby_xfree(x) RUBY_CRITICAL(free(x)); } -extern int ruby_in_compile; static int dont_gc; static int during_gc; static int need_call_final = 0; @@ -1001,19 +1000,6 @@ gc_sweep() int i, j; unsigned long live = 0; - if (ruby_in_compile && ruby_parser_stack_on_heap()) { - /* should not reclaim nodes during compilation - if yacc's semantic stack is not allocated on machine stack */ - for (i = 0; i < heaps_used; i++) { - p = heaps[i].slot; pend = p + heaps[i].limit; - while (p < pend) { - if (!(p->as.basic.flags&FL_MARK) && BUILTIN_TYPE(p) == T_NODE) - gc_mark((VALUE)p, 0); - p++; - } - } - } - mark_source_filename(ruby_sourcefile); st_foreach(source_filenames, sweep_source_filename, 0); @@ -1080,7 +1066,7 @@ gc_sweep() if (final_list) { RVALUE *tmp; - if (rb_prohibit_interrupt || ruby_in_compile) { + if (rb_prohibit_interrupt) { deferred_final_list = final_list; return; } |