From d9c32f8bf85e1065f629f3ebdb4839b2af4e340c Mon Sep 17 00:00:00 2001 From: "Dylan M. Taylor" Date: Tue, 3 Nov 2026 12:58:58 +0000 Subject: [PATCH] address review: charge declared image pixels before decode --- crates/pdf/src/page.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/pdf/src/page.rs b/crates/pdf/src/page.rs index 7ca35536c..b877c2e01 100644 --- a/crates/pdf/src/page.rs +++ b/crates/pdf/src/page.rs @@ -1058,9 +1058,10 @@ impl<'a> Interp<'a> { self.b.skip("image (page pixel limit)"); return; }; + // Charged even when the decode fails: the declared size is what costs. + self.image_pixels = left; match crate::image::decode(self.file, d, raw, Some(res), fill) { Ok(img) => { - self.image_pixels = left; let decoded = (img.width, img.height, std::sync::Arc::new(img.rgba)); if let Some(k) = cache_key { self.images.insert(k, decoded.clone());