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

ruby-changes:29877

From: glass <ko1@a...>
Date: Fri, 12 Jul 2013 11:35:30 +0900 (JST)
Subject: [ruby-changes:29877] glass:r41929 (trunk): * hash.c (rb_hash_reject_bang): do not call rb_hash_foreach() if RHash

glass	2013-07-12 11:35:16 +0900 (Fri, 12 Jul 2013)

  New Revision: 41929

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=41929

  Log:
    * hash.c (rb_hash_reject_bang): do not call rb_hash_foreach() if RHash
      has ntbl and it is empty.

  Modified files:
    trunk/ChangeLog
    trunk/hash.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 41928)
+++ ChangeLog	(revision 41929)
@@ -1,3 +1,8 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Fri Jul 12 11:26:25 2013  Masaki Matsushita  <glass.saga@g...>
+
+	* hash.c (rb_hash_reject_bang): do not call rb_hash_foreach() if RHash
+	  has ntbl and it is empty.
+
 Fri Jul 12 11:17:41 2013  Masaki Matsushita  <glass.saga@g...>
 
 	* hash.c (recursive_hash): use RHASH_SIZE() to check hash size.
Index: hash.c
===================================================================
--- hash.c	(revision 41928)
+++ hash.c	(revision 41929)
@@ -1061,9 +1061,8 @@ rb_hash_reject_bang(VALUE hash) https://github.com/ruby/ruby/blob/trunk/hash.c#L1061
 
     RETURN_SIZED_ENUMERATOR(hash, 0, 0, hash_enum_size);
     rb_hash_modify(hash);
-    if (!RHASH(hash)->ntbl)
-        return Qnil;
-    n = RHASH(hash)->ntbl->num_entries;
+    n = RHASH_SIZE(hash);
+    if (!n) return Qnil;
     rb_hash_foreach(hash, delete_if_i, hash);
     if (n == RHASH(hash)->ntbl->num_entries) return Qnil;
     return hash;

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

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