[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]