Skip to content

Commit 3b36a4f

Browse files
committed
Let PDF::Class::Loader have precedence over PDF::Lite::Loader
1 parent 907c5e7 commit 3b36a4f

File tree

3 files changed

+16
-10
lines changed

3 files changed

+16
-10
lines changed

Changes

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
{{$NEXT}}
22
- Deprecate Hash to Stream dictionary coercement
3+
- Remove deprecated PDF permitted() method.
4+
- Give PDF::Class::Loader precedence over PDF::Lite::Loader
5+
- Refactor PDF::COS::Null coercement
36

47
0.6.12 2025-07-27T09:41:05+12:00
58
- Adjust to OpenSSL v0.2.5+.

lib/PDF/COS.rakumod

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,8 @@ multi method COERCE(Enumeration $_) is default {
3232

3333
# low precedence fallback
3434
multi method COERCE($v is raw) {
35-
if !$v.defined && self.isa("PDF::COS::Null") {
36-
self.new;
37-
}
38-
else {
39-
warn "failed to coerce {$v.raku} to {self.WHAT.raku}";
40-
$v;
41-
}
35+
warn "failed to coerce {$v.raku} to {self.WHAT.raku}";
36+
$v;
4237
}
4338

4439
proto method coerce(|) {*}
@@ -163,10 +158,17 @@ method !coercer {
163158
}
164159

165160
method loader is rw handles <load-delegate> {
166-
unless $loader.can('load-delegate') {
167-
$loader = $.required('PDF::COS::Loader');
161+
sub FETCH($) {
162+
$loader = $.required('PDF::COS::Loader')
163+
if $loader === Any;
164+
$loader;
165+
}
166+
sub STORE($, $l) {
167+
$loader = $l
168+
unless $loader.isa('PDF::Class::Loader')
169+
&& $l.isa('PDF::Lite::Loader');
168170
}
169-
$loader
171+
Proxy.new: :&FETCH, :&STORE;
170172
}
171173

172174
multi method ACCEPTS(Any:D: Any:D $v) is default {

lib/PDF/COS/Null.rakumod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ also does PDF::COS;
88

99
method defined { False }
1010
method content { :null(Any) }
11+
multi method COERCE(Any:U) is default { self.new }
1112
multi method ACCEPTS(Any:U) { True }

0 commit comments

Comments
 (0)