Remove block in favour of for loop to reduce temporary object allocation during variable context resolution

This commit is contained in:
Jason Hiltz-Laforge
2014-07-22 14:54:50 +00:00
parent 0e56cf99ab
commit bc3b066ba8
+6 -1
View File
@@ -194,7 +194,12 @@ module Liquid
# Fetches an object starting at the local scope and then moving up the hierachy
def find_variable(key)
scope = @scopes.find { |s| s.has_key?(key) }
# This was changed from find() to find_index() because this is a very hot
# path and find_index() is optimized in MRI to reduce object allocation
index = @scopes.find_index { |s| s.has_key?(key) }
scope = @scopes[index] if index
variable = nil
if scope.nil?