ruby-changes:12027
From: matz <ko1@a...>
Date: Mon, 15 Jun 2009 18:06:31 +0900 (JST)
Subject: [ruby-changes:12027] Ruby:r23693 (trunk): * gc.c (os_obj_of): invoke garbage collection before iteration, to
matz 2009-06-15 18:06:16 +0900 (Mon, 15 Jun 2009) New Revision: 23693 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=23693 Log: * gc.c (os_obj_of): invoke garbage collection before iteration, to avoid accessing half recycled object references. [ruby-dev:38613] Modified files: trunk/ChangeLog trunk/gc.c Index: ChangeLog =================================================================== --- ChangeLog (revision 23692) +++ ChangeLog (revision 23693) @@ -1,3 +1,8 @@ +Mon Jun 15 17:48:42 2009 Yukihiro Matsumoto <matz@r...> + + * gc.c (os_obj_of): invoke garbage collection before iteration, to + avoid accessing half recycled object references. [ruby-dev:38613] + Mon Jun 15 11:04:30 2009 Nobuyoshi Nakada <nobu@r...> * .gdbinit (rp, iseq): load dummy_gdb_enums on demand. Index: gc.c =================================================================== --- gc.c (revision 23692) +++ gc.c (revision 23693) @@ -85,6 +85,7 @@ int ruby_gc_debug_indent = 0; #undef GC_DEBUG +#define GC_DEBUG /* for GC profile */ #define GC_PROFILE_MORE_DETAIL 0 @@ -272,7 +273,7 @@ struct RComplex complex; } as; #ifdef GC_DEBUG - char *file; + const char *file; int line; #endif } RVALUE; @@ -2392,6 +2393,7 @@ RVALUE *p, *pend; volatile VALUE v; + rb_garbage_collect(); i = 0; while (i < heaps_used) { while (0 < i && (uintptr_t)membase < (uintptr_t)heaps[i-1].membase) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/