ruby-changes:28837
From: nobu <ko1@a...>
Date: Wed, 22 May 2013 16:50:32 +0900 (JST)
Subject: [ruby-changes:28837] nobu:r40889 (trunk): gc.c: use size_t and no header if next_index == 0
nobu 2013-05-22 16:50:20 +0900 (Wed, 22 May 2013) New Revision: 40889 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=40889 Log: gc.c: use size_t and no header if next_index == 0 * gc.c (gc_profile_dump_on): use size_t to get rid of overflow and show the header when next_index > 0, instead of next_index != 1. Modified files: trunk/ChangeLog trunk/gc.c Index: ChangeLog =================================================================== --- ChangeLog (revision 40888) +++ ChangeLog (revision 40889) @@ -1,3 +1,8 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1 +Wed May 22 16:50:18 2013 Nobuyoshi Nakada <nobu@r...> + + * gc.c (gc_profile_dump_on): use size_t to get rid of overflow and + show the header when next_index > 0, instead of next_index != 1. + Wed May 22 15:18:59 2013 Nobuyoshi Nakada <nobu@r...> * win32/win32.c (setup_overlapped): check the error code in addition Index: gc.c =================================================================== --- gc.c (revision 40888) +++ gc.c (revision 40889) @@ -4996,10 +4996,10 @@ static void https://github.com/ruby/ruby/blob/trunk/gc.c#L4996 gc_profile_dump_on(VALUE out, VALUE (*append)(VALUE, VALUE)) { rb_objspace_t *objspace = &rb_objspace; - int count = (int)objspace->profile.next_index - 1; + size_t count = objspace->profile.next_index; - if (objspace->profile.run && count) { - int i, index = 1; + if (objspace->profile.run && count /* > 1 */) { + size_t i; const gc_profile_record *record; append(out, rb_sprintf("GC %"PRIuSIZE" invokes.\n", objspace->count)); @@ -5007,19 +5007,18 @@ gc_profile_dump_on(VALUE out, VALUE (*ap https://github.com/ruby/ruby/blob/trunk/gc.c#L5007 for (i = 0; i < count; i++) { record = &objspace->profile.record[i]; - append(out, rb_sprintf("%5d %19.3f %20"PRIuSIZE" %20"PRIuSIZE" %20"PRIuSIZE" %30.20f\n", - index++, record->gc_invoke_time, record->heap_use_size, + append(out, rb_sprintf("%5"PRIdSIZE" %19.3f %20"PRIuSIZE" %20"PRIuSIZE" %20"PRIuSIZE" %30.20f\n", + i+1, record->gc_invoke_time, record->heap_use_size, record->heap_total_size, record->heap_total_objects, record->gc_time*1000)); } #if GC_PROFILE_MORE_DETAIL append(out, rb_str_new_cstr("\n\n" \ "More detail.\n" \ "Index Flags Allocate Increase Allocate Limit Use Slot Mark Time(ms) Sweep Time(ms)\n")); - index = 1; for (i = 0; i < count; i++) { record = &objspace->profile.record[i]; - append(out, rb_sprintf("%5d %c/%c/%s%c %17"PRIuSIZE" %17"PRIuSIZE" %9"PRIuSIZE" %25.20f %25.20f\n", - index++, + append(out, rb_sprintf("%5"PRIdSIZE" %c/%c/%s%c %17"PRIuSIZE" %17"PRIuSIZE" %9"PRIuSIZE" %25.20f %25.20f\n", + i+1, (record->flags & GPR_FLAG_MINOR) ? '-' : '+', (record->flags & GPR_FLAG_HAVE_FINALIZE) ? 'F' : '.', (record->flags & GPR_FLAG_NEWOBJ) ? "NEWOBJ" : -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/