summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--lib/set.rb6
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 <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>
* 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 <knu@iDaemons.org>
+# Copyright (c) 2002-2013 Akinori MUSHA <knu@iDaemons.org>
#
# 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