1.2 KiB
1.2 KiB
FAIL
crates/ely-pdf-engine/shim/ely_text.c:104 — 新增的展开循环静默截断较长的 ToUnicode 一对多映射,违反 PRD PDF-03。spelt[64] 配合每次预留 18 个位置的条件,使普通字符最多处理 47 个。具体复现:沿用 a_ligature_block_edits_like_any_other 的 PDF,将 <01> 的 ToUnicode 目标改为 48 次 0066;文字块完整读取为 48 个 f 加 nd,但 editable=false,put_text 报 this text is not in the page's own content;47 次映射可以编辑。目标改为 17 次 FB03 时同样失败,16 次可以编辑。独立副本中移除新增展开逻辑后,48、64 个普通字符的映射均能替换并保存重开;仅将展开缓冲区扩大为 18 * PDF_MRANGE_CAP 后,全部 27 个扩展用例通过替换与保存重开验证;恢复当前代码后再次复现截断失败。原有 fonts、content、redact、independent 共 41 项测试通过,FB01 回归测试在移除展开逻辑后按预期失败。修复方向:按 MuPDF 支持的完整映射长度及最大展开长度容纳所有字符,确保整页判定、单块检查与删除均处理完整序列,并加入容量边界回归测试。