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

ruby-changes:4513

From: ko1@a...
Date: Mon, 14 Apr 2008 17:31:55 +0900 (JST)
Subject: [ruby-changes:4513] knu - Ruby:r16006 (trunk): * hash.c (rb_hash_delete_if, rb_hash_reject_bang, env_delete_if,

knu	2008-04-14 17:31:38 +0900 (Mon, 14 Apr 2008)

  New Revision: 16006

  Modified files:
    trunk/ChangeLog
    trunk/hash.c

  Log:
    * hash.c (rb_hash_delete_if, rb_hash_reject_bang, env_delete_if,
      env_reject_bang): Return an enumerator if no block is given.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/hash.c?r1=16006&r2=16005&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=16006&r2=16005&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 16005)
+++ ChangeLog	(revision 16006)
@@ -1,3 +1,8 @@
+Mon Apr 14 17:23:27 2008  Akinori MUSHA  <knu@i...>
+
+	* hash.c (rb_hash_delete_if, rb_hash_reject_bang, env_delete_if,
+	  env_reject_bang): Return an enumerator if no block is given.
+
 Mon Apr 14 14:33:59 2008  Nobuyoshi Nakada  <nobu@r...>
 
 	* compile.c, compile.h (compile_debug): made runtime option.
Index: hash.c
===================================================================
--- hash.c	(revision 16005)
+++ hash.c	(revision 16006)
@@ -787,6 +787,7 @@
 VALUE
 rb_hash_delete_if(VALUE hash)
 {
+    RETURN_ENUMERATOR(hash, 0, 0);
     rb_hash_modify(hash);
     rb_hash_foreach(hash, delete_if_i, hash);
     return hash;
@@ -804,6 +805,8 @@
 rb_hash_reject_bang(VALUE hash)
 {
     int n;
+
+    RETURN_ENUMERATOR(hash, 0, 0);
     if (!RHASH(hash)->ntbl)
         return Qnil;
     n = RHASH(hash)->ntbl->num_entries;
@@ -2142,12 +2145,13 @@
 }
 
 static VALUE
-env_reject_bang(void)
+env_reject_bang(VALUE ehash)
 {
     volatile VALUE keys;
     long i;
     int del = 0;
 
+    RETURN_ENUMERATOR(ehash, 0, 0);
     rb_secure(4);
     keys = env_keys();
     for (i=0; i<RARRAY_LEN(keys); i++) {
@@ -2165,9 +2169,9 @@
 }
 
 static VALUE
-env_delete_if(void)
+env_delete_if(VALUE ehash)
 {
-    env_reject_bang();
+    env_reject_bang(ehash);
     return envtbl;
 }
 

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

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