summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-enum-ext
diff options
context:
space:
mode:
authorksss <[email protected]>2016-11-24 10:35:15 +0900
committerksss <[email protected]>2016-11-24 10:35:15 +0900
commit5134734541dd993f74a40b1621009add2cf110bf (patch)
tree43989dc411936cec04d06b8550d7be5cb7938b0a /mrbgems/mruby-enum-ext
parent9e2faec8e4f5cb24ffc8a7f10284c05598b91acd (diff)
downloadmruby-5134734541dd993f74a40b1621009add2cf110bf.tar.gz
mruby-5134734541dd993f74a40b1621009add2cf110bf.zip
Shouldn't call `each` method if size is 0
Diffstat (limited to 'mrbgems/mruby-enum-ext')
-rw-r--r--mrbgems/mruby-enum-ext/mrblib/enum.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/mrbgems/mruby-enum-ext/mrblib/enum.rb b/mrbgems/mruby-enum-ext/mrblib/enum.rb
index bd64cc6bd..5b50aba00 100644
--- a/mrbgems/mruby-enum-ext/mrblib/enum.rb
+++ b/mrbgems/mruby-enum-ext/mrblib/enum.rb
@@ -61,9 +61,11 @@ module Enumerable
i = n.to_int
raise ArgumentError, "attempt to take negative size" if i < 0
ary = []
+ return ary if i == 0
self.each do |*val|
- break if ary.size >= n
ary << val.__svalue
+ i -= 1
+ break if i == 0
end
ary
end