From a442f232e93ac25a246f2a17f1a26ea912bf74f9 Mon Sep 17 00:00:00 2001 From: yui-knk Date: Sun, 3 Aug 2014 12:52:29 +0900 Subject: [PATCH] Refactor #flatten_merge Not to unnecessary recursive search. --- mrblib/mrb_set.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mrblib/mrb_set.rb b/mrblib/mrb_set.rb index b1e5ca7f2..2b0d751c6 100644 --- a/mrblib/mrb_set.rb +++ b/mrblib/mrb_set.rb @@ -83,19 +83,19 @@ class Set # end # def flatten_merge(set, seen = Set.new) + seen.add(set.object_id) set.each { |e| if e.is_a?(Set) if seen.include?(e_id = e.object_id) raise ArgumentError, "tried to flatten recursive Set" end - seen.add(e_id) flatten_merge(e, seen) - seen.delete(e_id) else add(e) end } + seen.delete(set.object_id) self end