From 30a9fd3f174000f4bb456a2d7470a25da58cddef Mon Sep 17 00:00:00 2001 From: eban Date: Thu, 13 May 2004 05:27:24 +0000 Subject: * hash.c (delete_if_i): use st_delete_safe() (via rb_hash_delete()) instead of returning ST_DELETE. backport from HEAD. [ruby-dev:23487] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@6304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ hash.c | 11 ++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7d0ac7bac6..f77c08c646 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Thu May 13 14:23:45 2004 WATANABE Hirofumi + + * hash.c (delete_if_i): use st_delete_safe() (via + rb_hash_delete()) instead of returning ST_DELETE. + backport from HEAD. [ruby-dev:23487] + Thu May 13 13:01:30 2004 akira yamada * lib/uri/mailto.rb (URI::MailTo::to_s): should include fragment. diff --git a/hash.c b/hash.c index 9d1c5d04bc..209fe26c37 100644 --- a/hash.c +++ b/hash.c @@ -679,12 +679,13 @@ rb_hash_shift(hash) } static enum st_retval -delete_if_i(key, value) - VALUE key, value; +delete_if_i(key, value, hash) + VALUE key, value, hash; { if (key == Qundef) return ST_CONTINUE; - if (RTEST(rb_yield_values(2, key, value))) - return ST_DELETE; + if (RTEST(rb_yield_values(2, key, value))) { + rb_hash_delete(hash, key); + } return ST_CONTINUE; } @@ -705,7 +706,7 @@ rb_hash_delete_if(hash) VALUE hash; { rb_hash_modify(hash); - rb_hash_foreach(hash, delete_if_i, 0); + rb_hash_foreach(hash, delete_if_i, hash); return hash; } -- cgit v1.2.3