* 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
This commit is contained in:
knu 2013-05-20 13:28:32 +00:00
parent b416c661e8
commit dcb4ceeac6
2 changed files with 9 additions and 3 deletions

View File

@ -1,3 +1,9 @@
Mon May 20 22:24:45 2013 Akinori MUSHA <knu@iDaemons.org>
* 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 <zachary@zacharyscott.net> Mon May 20 22:00:31 2013 Zachary Scott <zachary@zacharyscott.net>
* lib/e2mmap.rb: Format of E2MM documentation * lib/e2mmap.rb: Format of E2MM documentation

View File

@ -1,7 +1,7 @@
#-- #--
# set.rb - defines the Set class # set.rb - defines the Set class
#++ #++
# Copyright (c) 2002-2008 Akinori MUSHA <knu@iDaemons.org> # Copyright (c) 2002-2013 Akinori MUSHA <knu@iDaemons.org>
# #
# Documentation by Akinori MUSHA and Gavin Sinclair. # Documentation by Akinori MUSHA and Gavin Sinclair.
# #
@ -274,7 +274,7 @@ class Set
block_given? or return enum_for(__method__) block_given? or return enum_for(__method__)
# @hash.delete_if should be faster, but using it breaks the order # @hash.delete_if should be faster, but using it breaks the order
# of enumeration in subclasses. # of enumeration in subclasses.
select(&proc).each(&@hash.method(:delete)) select { |o| yield o }.each { |o| @hash.delete(o) }
self self
end end
@ -284,7 +284,7 @@ class Set
block_given? or return enum_for(__method__) block_given? or return enum_for(__method__)
# @hash.keep_if should be faster, but using it breaks the order of # @hash.keep_if should be faster, but using it breaks the order of
# enumeration in subclasses. # enumeration in subclasses.
reject(&proc).each(&@hash.method(:delete)) reject { |o| yield o }.each { |o| @hash.delete(o) }
self self
end end