diff --git a/ChangeLog b/ChangeLog index eae2565bbe..23c1b711b4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Thu Jun 20 06:18:01 2013 Koichi Sasada + + * gc.c (gc_profile_total_time): check objspace->profile.next_index > 0. + Thu Jun 20 05:47:41 2013 Koichi Sasada * gc.c (gc_prof_sweep_timer_start): fix merge miss. diff --git a/gc.c b/gc.c index 7eb6114867..5568015f0a 100644 --- a/gc.c +++ b/gc.c @@ -5348,10 +5348,11 @@ gc_profile_total_time(VALUE self) { double time = 0; rb_objspace_t *objspace = &rb_objspace; - size_t i; - size_t count = objspace->profile.next_index - 1; - if (objspace->profile.run && count > 0) { + if (objspace->profile.run && objspace->profile.next_index > 0) { + size_t i; + size_t count = objspace->profile.next_index - 1; + for (i = 0; i < count; i++) { time += objspace->profile.record[i].gc_time; }