diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-02-08 09:18:04 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-02-08 09:18:04 +0000 |
commit | 10f884d85a379d46b6155733d2aaded32f731bcb (patch) | |
tree | 83e85fb014e4165f543f01d42deea6c1f00b45c7 /gc.c | |
parent | ab65e3df29b8915cbf6c09ac3f8617b6392e3eb8 (diff) |
* parse.y (parse_quotedwords): %w should allow parenthesis escape.
* parse.y (parse_qstring): %q should allow terminator escape.
* re.c (rb_reg_equal): all option flags should be same to be equal.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@1166 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 9 |
1 files changed, 3 insertions, 6 deletions
@@ -315,10 +315,7 @@ rb_data_object_alloc(klass, datap, dmark, dfree) extern st_table *rb_class_tbl; VALUE *rb_gc_stack_start = 0; -#if defined(__GNUC__) && __GNUC__ >= 2 -__inline__ -#endif -static int +static inline int is_pointer_to_heap(ptr) void *ptr; { @@ -1053,6 +1050,7 @@ os_live_obj() case T_CLASS: if (FL_TEST(p, FL_SINGLETON)) continue; default: + if (!p->as.basic.klass) continue; rb_yield((VALUE)p); n++; } @@ -1085,6 +1083,7 @@ os_obj_of(of) case T_CLASS: if (FL_TEST(p, FL_SINGLETON)) continue; default: + if (!p->as.basic.klass) continue; if (rb_obj_is_kind_of((VALUE)p, of)) { rb_yield((VALUE)p); n++; @@ -1218,7 +1217,6 @@ run_final(obj) } if (finalizer_table && st_delete(finalizer_table, &obj, &table)) { for (i=0; i<RARRAY(table)->len; i++) { - printf("n finals=>%d\n", finalizer_table->num_entries); args[0] = RARRAY(table)->ptr[i]; rb_protect(run_single_final, (VALUE)args, &status); } @@ -1247,7 +1245,6 @@ rb_gc_call_finalizer_at_exit() if (FL_TEST(p, FL_FINALIZE)) { FL_UNSET(p, FL_FINALIZE); p->as.basic.klass = 0; - printf("%p\n", p); run_final((VALUE)p); } p++; |