mirror of
https://github.com/Shopify/liquid.git
synced 2026-10-03 09:05:13 -07:00
Refactor limit tracking using render_score flag
Remove reached_limit field; use render_score == -1 to indicate limits reached. Update related methods accordingly for clarity and consistency.
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
module Liquid
|
module Liquid
|
||||||
class ResourceLimits < Struct.new(:render_length_limit, :render_score_limit, :assign_score_limit, :render_score, :assign_score, :reached_limit, :last_capture_length, keyword_init: true)
|
class ResourceLimits < Struct.new(:render_length_limit, :render_score_limit, :assign_score_limit, :render_score, :assign_score, :last_capture_length, keyword_init: true)
|
||||||
def increment_render_score(amount)
|
def increment_render_score(amount)
|
||||||
self.render_score ||= 0
|
self.render_score ||= 0
|
||||||
self.render_score += amount
|
self.render_score += amount
|
||||||
@@ -27,16 +27,15 @@ module Liquid
|
|||||||
end
|
end
|
||||||
|
|
||||||
def raise_limits_reached
|
def raise_limits_reached
|
||||||
self.reached_limit = true
|
self.render_score = -1
|
||||||
raise MemoryError, "Memory limits exceeded"
|
raise MemoryError, "Memory limits exceeded"
|
||||||
end
|
end
|
||||||
|
|
||||||
def reached?
|
def reached?
|
||||||
reached_limit
|
self.render_score == -1
|
||||||
end
|
end
|
||||||
|
|
||||||
def reset
|
def reset
|
||||||
self.reached_limit = false
|
|
||||||
self.last_capture_length = nil
|
self.last_capture_length = nil
|
||||||
self.render_score = self.assign_score = 0
|
self.render_score = self.assign_score = 0
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user