From 5dcefd7d77382ddabf7f727475370c0b4d1c7dae Mon Sep 17 00:00:00 2001 From: Dylan Thacker-Smith Date: Tue, 7 Feb 2017 15:34:10 -0500 Subject: [PATCH] Avoid calling line_number on String node when rescuing a render error. --- lib/liquid/block_body.rb | 5 +++-- lib/liquid/context.rb | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/liquid/block_body.rb b/lib/liquid/block_body.rb index 4e2a4c9..d69af1a 100644 --- a/lib/liquid/block_body.rb +++ b/lib/liquid/block_body.rb @@ -93,10 +93,11 @@ module Liquid rescue MemoryError => e raise e rescue UndefinedVariable, UndefinedDropMethod, UndefinedFilter => e - context.handle_error(e, token.line_number, token.raw) + context.handle_error(e, token.line_number) output << nil rescue ::StandardError => e - output << context.handle_error(e, token.line_number, token.raw) + line_number = token.is_a?(String) ? nil : token.line_number + output << context.handle_error(e, line_number) end end diff --git a/lib/liquid/context.rb b/lib/liquid/context.rb index 6ba2353..2a5ea41 100644 --- a/lib/liquid/context.rb +++ b/lib/liquid/context.rb @@ -74,7 +74,7 @@ module Liquid @interrupts.pop end - def handle_error(e, line_number = nil, raw_token = nil) + def handle_error(e, line_number = nil) e = internal_error unless e.is_a?(Liquid::Error) e.template_name ||= template_name e.line_number ||= line_number