aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2013-11-06 14:21:40 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2013-11-06 14:21:40 -0800
commit267e5c84f96b96f8eac9f4a3dcdce5bc1b82541c (patch)
tree1d04c31abe1fc5117e5fe198aaf6c2c790aad1af /actionpack/lib/action_controller
parentc8b566d54da278a8e675115bcf2e9590f75f5eb5 (diff)
downloadrails-267e5c84f96b96f8eac9f4a3dcdce5bc1b82541c.tar.gz
rails-267e5c84f96b96f8eac9f4a3dcdce5bc1b82541c.tar.bz2
rails-267e5c84f96b96f8eac9f4a3dcdce5bc1b82541c.zip
calculate the ivars to remove in advance as a set and cache them in a
constant. `view_assigns` can use the precalculated sets and remove instance variables without allocating any extra arrays
Diffstat (limited to 'actionpack/lib/action_controller')
-rw-r--r--actionpack/lib/action_controller/base.rb13
1 files changed, 10 insertions, 3 deletions
diff --git a/actionpack/lib/action_controller/base.rb b/actionpack/lib/action_controller/base.rb
index 3b0d094f4f..c84776ab7a 100644
--- a/actionpack/lib/action_controller/base.rb
+++ b/actionpack/lib/action_controller/base.rb
@@ -261,10 +261,17 @@ module ActionController
end
# Define some internal variables that should not be propagated to the view.
- self.protected_instance_variables = [
+ PROTECTED_IVARS = AbstractController::Rendering::DEFAULT_PROTECTED_INSTANCE_VARIABLES + [
:@_status, :@_headers, :@_params, :@_env, :@_response, :@_request,
- :@_view_runtime, :@_stream, :@_url_options, :@_action_has_layout
- ]
+ :@_view_runtime, :@_stream, :@_url_options, :@_action_has_layout ]
+
+ def _protected_ivars # :nodoc:
+ PROTECTED_IVARS
+ end
+
+ def self.protected_instance_variables
+ PROTECTED_IVARS
+ end
ActiveSupport.run_load_hooks(:action_controller, self)
end