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

ruby-changes:5352

From: akr <ko1@a...>
Date: Fri, 6 Jun 2008 15:07:49 +0900 (JST)
Subject: [ruby-changes:5352] Ruby:r16853 (trunk): * gc.c (count_objects): clear hash after counting objects.

akr	2008-06-06 15:05:44 +0900 (Fri, 06 Jun 2008)

  New Revision: 16853

  Modified files:
    trunk/ChangeLog
    trunk/gc.c

  Log:
    * gc.c (count_objects): clear hash after counting objects.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=16853&r2=16852&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/gc.c?r1=16853&r2=16852&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 16852)
+++ ChangeLog	(revision 16853)
@@ -1,3 +1,7 @@
+Fri Jun  6 15:05:02 2008  Tanaka Akira  <akr@f...>
+
+	* gc.c (count_objects): clear hash after counting objects.
+
 Fri Jun  6 00:05:33 2008  Tanaka Akira  <akr@f...>
 
 	* lib/time.rb (Time.xmlschema): don't use float.  fix
Index: gc.c
===================================================================
--- gc.c	(revision 16852)
+++ gc.c	(revision 16853)
@@ -2294,9 +2294,6 @@
     if (rb_scan_args(argc, argv, "01", &hash) == 1) {
         if (TYPE(hash) != T_HASH)
             rb_raise(rb_eTypeError, "non-hash given");
-        if (!RHASH_EMPTY_P(hash)) {
-            st_foreach(RHASH_TBL(hash), set_zero, hash);
-        }
     }
 
     for (i = 0; i <= T_MASK; i++) {
@@ -2318,8 +2315,12 @@
         total += heaps[i].limit;
     }
 
-    if (hash == Qnil)
+    if (hash == Qnil) {
         hash = rb_hash_new();
+    }
+    else if (!RHASH_EMPTY_P(hash)) {
+        st_foreach(RHASH_TBL(hash), set_zero, hash);
+    }
     rb_hash_aset(hash, ID2SYM(rb_intern("TOTAL")), SIZET2NUM(total));
     rb_hash_aset(hash, ID2SYM(rb_intern("FREE")), SIZET2NUM(freed));
     for (i = 0; i <= T_MASK; i++) {

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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