slightly reorder VarSet#deep_dup to optimize - #92
This commit is contained in:
parent
fa14102ba5
commit
a4dec210ae
@ -194,16 +194,16 @@ module Rscons
|
|||||||
#
|
#
|
||||||
# @return [Object] Deep copied value.
|
# @return [Object] Deep copied value.
|
||||||
def deep_dup(obj)
|
def deep_dup(obj)
|
||||||
obj_class = obj.class
|
case obj
|
||||||
if obj_class == Hash
|
when String
|
||||||
|
obj.dup
|
||||||
|
when Array
|
||||||
|
obj.map { |v| deep_dup(v) }
|
||||||
|
when Hash
|
||||||
obj.reduce({}) do |result, (k, v)|
|
obj.reduce({}) do |result, (k, v)|
|
||||||
result[k] = deep_dup(v)
|
result[k] = deep_dup(v)
|
||||||
result
|
result
|
||||||
end
|
end
|
||||||
elsif obj_class == Array
|
|
||||||
obj.map { |v| deep_dup(v) }
|
|
||||||
elsif obj_class == String
|
|
||||||
obj.dup
|
|
||||||
else
|
else
|
||||||
obj
|
obj
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user