From dcb4ceeac68e32be46016930f0dc82b18e4694e6 Mon Sep 17 00:00:00 2001 From: knu Date: Mon, 20 May 2013 13:28:32 +0000 Subject: [PATCH] * lib/set.rb (Set#delete_if, Set#keep_if): Avoid blockless call of proc, which is not portable to JRuby. Replace &method() with faster and simpler literal blocks while at it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ lib/set.rb | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0a1fca9b8a..6c08eb89c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Mon May 20 22:24:45 2013 Akinori MUSHA + + * lib/set.rb (Set#delete_if, Set#keep_if): Avoid blockless call of + proc, which is not portable to JRuby. Replace &method() with + faster and simpler literal blocks while at it. + Mon May 20 22:00:31 2013 Zachary Scott * lib/e2mmap.rb: Format of E2MM documentation diff --git a/lib/set.rb b/lib/set.rb index 4668b4e24a..cc7542f223 100644 --- a/lib/set.rb +++ b/lib/set.rb @@ -1,7 +1,7 @@ #-- # set.rb - defines the Set class #++ -# Copyright (c) 2002-2008 Akinori MUSHA +# Copyright (c) 2002-2013 Akinori MUSHA # # Documentation by Akinori MUSHA and Gavin Sinclair. # @@ -274,7 +274,7 @@ class Set block_given? or return enum_for(__method__) # @hash.delete_if should be faster, but using it breaks the order # of enumeration in subclasses. - select(&proc).each(&@hash.method(:delete)) + select { |o| yield o }.each { |o| @hash.delete(o) } self end @@ -284,7 +284,7 @@ class Set block_given? or return enum_for(__method__) # @hash.keep_if should be faster, but using it breaks the order of # enumeration in subclasses. - reject(&proc).each(&@hash.method(:delete)) + reject { |o| yield o }.each { |o| @hash.delete(o) } self end