From 7b4c74d7111ddd4ec111beb3715a79d90321028a Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Sun, 6 Sep 2026 18:50:33 +0300 Subject: [PATCH] safe page cycle --- config/initializers/hexapdf.rb | 59 ++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/config/initializers/hexapdf.rb b/config/initializers/hexapdf.rb index a8dd5203..f639374f 100644 --- a/config/initializers/hexapdf.rb +++ b/config/initializers/hexapdf.rb @@ -46,6 +46,20 @@ module HexaPDF def color_space(name) GlobalConfiguration.constantize('color_space.map', name).new end + + def [](name) + return super unless value[name].nil? && INHERITABLE_FIELDS.include?(name) + + seen = Set.new.compare_by_identity + seen << value + node = self + + while node.value[name].nil? && (parent = node[:Parent]) && seen.add?(parent.value) + node = parent + end + + node == self || node.value[name].nil? ? super : node[name] + end end # fix NoMethodError: undefined method `field_value' for #