aboutsummaryrefslogtreecommitdiffstats
path: root/gc.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-09-24 05:53:43 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-09-24 05:53:43 +0000
commitc0a998d027eac8e9dc6d85b4b56c5e5bc87024a0 (patch)
tree49adb0e44abfd9d14f9c47517039e333bb98c50a /gc.c
parent0c9d76889af8e00a946dbe8de33568fc87bdd983 (diff)
downloadruby-c0a998d027eac8e9dc6d85b4b56c5e5bc87024a0.tar.gz
* 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.c16
1 files changed, 1 insertions, 15 deletions
diff --git a/gc.c b/gc.c
index f7d8f76482..b270b8fcf2 100644
--- a/gc.c
+++ b/gc.c
@@ -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;
}