mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-29 12:17:14 -06:00
The reader's Dict::entries unwraps every value it reads, so it panics on a value it cannot parse, such as the name /#zz or the number 12-.5 (vendor/hayro-syntax/src/object/dict.rs:104 at craft-libs ca50d63b). Besides the nesting check in pages.rs, two loops of the import call it: - Colors::visit (import_color.rs) looks for the file's Separation and DeviceN spaces when a page paints in one. craft_pdf's interpret_page catches the panic, and the import fails with "PDF page interpretation failed internally". - Walker::note_fonts (import_scan.rs) notes the fonts of each page. The import does not catch that panic. On main the nesting check in pages.rs panics on such a value first (#2133 fixes it); with it fixed, the import reaches these two loops. Colors::visit now reads the values with Dict::keys and get_raw, sorted by key as before, and leaves out a value the reader cannot parse. note_fonts reads the keys and looks each font up by its key, as before.