From a09e99259c688a839bd5b4635da6f119dd1e0e41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 27 Mar 2010 20:51:25 +0100 Subject: Ensure details are frozen after @details_keys lookup. The implementation waits to freeze until the last required moment, to avoid duping hashes. --- actionpack/lib/action_view/render/rendering.rb | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) (limited to 'actionpack/lib/action_view/render/rendering.rb') diff --git a/actionpack/lib/action_view/render/rendering.rb b/actionpack/lib/action_view/render/rendering.rb index a8f745afd1..492326964a 100644 --- a/actionpack/lib/action_view/render/rendering.rb +++ b/actionpack/lib/action_view/render/rendering.rb @@ -21,7 +21,7 @@ module ActionView _render_partial(options) else template = _determine_template(options) - _freeze_formats(template.formats) + lookup_context.freeze_formats(template.formats, true) _render_template(template, options[:layout], options) end when :update @@ -62,14 +62,5 @@ module ActionView content end end - - # Freeze the current formats in the lookup context. By freezing them, you are guaranteeing - # that next template lookups are not going to modify the formats. The controller can also - # use this, to ensure that formats won't be further modified (as it does in respond_to blocks). - def _freeze_formats(formats) #:nodoc: - return if self.formats.frozen? - self.formats = formats - self.formats.freeze - end end end -- cgit v1.2.3