1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* gc.c: don't call after_gc_sweep() after when garbage_collect()

was called, because rb_sweep_method_entry() free live unlinked
  method entries. [ruby-core:31169]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nari 2010-07-20 06:14:40 +00:00
parent a52dd6cc5c
commit 81cc3b2655
2 changed files with 15 additions and 8 deletions

View file

@ -1,3 +1,9 @@
Tue Jul 20 14:21:38 2010 Narihiro Nakamura <authorNari@gmail.com>
* gc.c: don't call after_gc_sweep() after when garbage_collect()
was called, because rb_sweep_method_entry() free live unlinked
method entries. [ruby-core:31169]
Tue Jul 20 12:42:06 2010 URABE Shyouhei <shyouhei@ruby-lang.org>
* ext/socket/raddrinfo.c (rb_getaddrinfo): according to my

17
gc.c
View file

@ -2055,16 +2055,17 @@ gc_lazy_sweep(rb_objspace_t *objspace)
GC_PROF_TIMER_START;
GC_PROF_SWEEP_TIMER_START;
res = lazy_sweep(objspace);
if (res) {
GC_PROF_SWEEP_TIMER_STOP;
GC_PROF_SET_MALLOC_INFO;
GC_PROF_TIMER_STOP(Qfalse);
return res;
if (objspace->heap.sweep_slots) {
res = lazy_sweep(objspace);
if (res) {
GC_PROF_SWEEP_TIMER_STOP;
GC_PROF_SET_MALLOC_INFO;
GC_PROF_TIMER_STOP(Qfalse);
return res;
}
after_gc_sweep(objspace);
}
after_gc_sweep(objspace);
gc_marks(objspace);
before_gc_sweep(objspace);