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/