From 818ecf50d8834a0bdd704f0483ca464b590e0ab8 Mon Sep 17 00:00:00 2001 From: Justin Collins Date: Wed, 1 Jul 2015 22:10:08 -0700 Subject: [PATCH] Remove new call creation in template processing --- lib/brakeman/processors/erb_template_processor.rb | 8 +++----- lib/brakeman/processors/erubis_template_processor.rb | 11 ++++------- lib/brakeman/processors/haml_template_processor.rb | 8 +++----- lib/brakeman/processors/slim_template_processor.rb | 6 ++---- 4 files changed, 12 insertions(+), 21 deletions(-) diff --git a/lib/brakeman/processors/erb_template_processor.rb b/lib/brakeman/processors/erb_template_processor.rb index a5afb94e..4cdf240c 100644 --- a/lib/brakeman/processors/erb_template_processor.rb +++ b/lib/brakeman/processors/erb_template_processor.rb @@ -46,11 +46,9 @@ class Brakeman::ErbTemplateProcessor < Brakeman::TemplateProcessor exp.arglist = process(exp.arglist) make_render_in_view exp else - #TODO: Is it really necessary to create a new Sexp here? - call = make_call target, method, process_all!(exp.args) - call.original_line = exp.original_line - call.line(exp.line) - call + exp.target = target + exp.arglist = process(exp.arglist) + exp end end diff --git a/lib/brakeman/processors/erubis_template_processor.rb b/lib/brakeman/processors/erubis_template_processor.rb index 61550c72..240e1384 100644 --- a/lib/brakeman/processors/erubis_template_processor.rb +++ b/lib/brakeman/processors/erubis_template_processor.rb @@ -9,12 +9,14 @@ class Brakeman::ErubisTemplateProcessor < Brakeman::TemplateProcessor if sexp? target target = process target end + + exp.target = target + exp.arglist = process exp.arglist method = exp.method #_buf is the default output variable for Erubis if node_type?(target, :lvar, :ivar) and (target.value == :_buf or target.value == :@output_buffer) if method == :<< or method == :safe_concat - exp.arglist = process exp.arglist arg = exp.first_arg @@ -42,14 +44,9 @@ class Brakeman::ErubisTemplateProcessor < Brakeman::TemplateProcessor abort "Unrecognized action on buffer: #{method}" end elsif target == nil and method == :render - exp.arglist = process exp.arglist make_render_in_view exp else - #TODO: Is it really necessary to create a new Sexp here? - call = make_call target, method, process_all!(exp.args) - call.original_line = exp.original_line - call.line(exp.line) - call + exp end end diff --git a/lib/brakeman/processors/haml_template_processor.rb b/lib/brakeman/processors/haml_template_processor.rb index 2b19b0ae..021e0580 100644 --- a/lib/brakeman/processors/haml_template_processor.rb +++ b/lib/brakeman/processors/haml_template_processor.rb @@ -76,11 +76,9 @@ class Brakeman::HamlTemplateProcessor < Brakeman::TemplateProcessor exp.arglist = process exp.arglist make_render_in_view exp else - #TODO: Do we really need a new Sexp here? - call = make_call target, method, process_all!(exp.args) - call.original_line = exp.original_line - call.line(exp.line) - call + exp.target = target + exp.arglist = process exp.arglist + exp end end diff --git a/lib/brakeman/processors/slim_template_processor.rb b/lib/brakeman/processors/slim_template_processor.rb index 9f418777..e48ebdd8 100644 --- a/lib/brakeman/processors/slim_template_processor.rb +++ b/lib/brakeman/processors/slim_template_processor.rb @@ -38,10 +38,8 @@ class Brakeman::SlimTemplateProcessor < Brakeman::TemplateProcessor exp.arglist = process exp.arglist make_render_in_view exp else - call = make_call target, method, process_all!(exp.args) - call.original_line = exp.original_line - call.line(exp.line) - call + exp.arglist = process exp.arglist + exp end end -- GitLab