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/