Files
ElyOffice/tasks/reviews/R7.4-r3.md
T
ZacharyZhang-NYandClaude Opus 5.5 6b676e06e6 R7.4: an unembedded font is no damage (#5)
The warning watch skips MuPDF's non-embedded font notice and its
repeat counts. Text and search reads are watched too: damage they meet
is kept on the document, told by the next draw or picture check, and
fails image and text exports until then.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-16 13:44:17 -04:00

1.3 KiB
Raw Blame History

FAIL

  1. crates/ely-pdf-engine/shim/ely_mupdf.c:89 — Seeding from only the last warning still loses genuine damage when an unwatched read reaches fonts after a damaged image. Reproduction: combine the new bad-mask fixture (4×4 RGB, /Mask [null null null null null null], /ASCIIHexDecode, ff0000 repeated 16 times followed by >) with the two separate unembedded SimSun fonts from an_unembedded_font_is_no_damage; draw the image before the two text runs. On fresh workers, call text() or search() before rendering, exporting, or checking pictures. The mask warning occurs six times, but the first font notice flushes those warnings outside the collector; only the font repeat remains pending. The new filter ignores that repeat, and the cached image raises no further warning: rendering returns damaged = false, the repair report is None, PNG and text exports succeed, and check_pictures returns false. HEAD detects damage and rejects both exports on this same fixture. This removes the damaged original's overwrite protection required by R7.4 and PDF-14. Capture and classify warnings during text/search reads and retain genuine damage for the document; add a regression combining the bad image and font notices in both drawing orders. Windows comparison and exact reproduction: .work/R7.4-r3-compare.log.