From cf85aaf83e48c8e2492432673b7e0f88ed4c97a9 Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 8 Dec 2013 11:25:06 +0000 Subject: [PATCH] hash.c: reject shoult infect * hash.c (rb_hash_reject): result should be infected by the receiver. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- hash.c | 1 + test/ruby/test_hash.rb | 2 ++ 2 files changed, 3 insertions(+) diff --git a/hash.c b/hash.c index 7e18a4049a..53d70f9fe7 100644 --- a/hash.c +++ b/hash.c @@ -1119,6 +1119,7 @@ rb_hash_reject(VALUE hash) RETURN_SIZED_ENUMERATOR(hash, 0, 0, hash_enum_size); ret = hash_alloc(rb_obj_class(hash)); + OBJ_INFECT(ret, hash); if (!RHASH_EMPTY_P(hash)) { rb_hash_foreach(hash, reject_i, ret); } diff --git a/test/ruby/test_hash.rb b/test/ruby/test_hash.rb index 4244b86b56..0593785148 100644 --- a/test/ruby/test_hash.rb +++ b/test/ruby/test_hash.rb @@ -555,6 +555,8 @@ class TestHash < Test::Unit::TestCase assert_equal(h3, h.reject {|k,v| v }) assert_equal(base, h) + + assert_predicate(h.taint.reject {true}, :tainted?) end def test_reject!