mirror of
https://github.com/penpot/penpot.git
synced 2026-09-14 16:09:01 +00:00
* 🐛 Fix crash when a nil shape id reaches WASM modifiers A modif-tree containing a nil shape id crashed the WASM heap write with "Cannot read properties of null (reading '__u32_buffer')" in propagate-modifiers. Production builds elide the upstream asserts, so a nil id (e.g. update-dimensions called with a missing shape's parent id in the variants flow) reached the uuid heap write. Drop nil-keyed modif-tree entries in apply-wasm-modifiers and set-wasm-modifiers before they reach propagate-modifiers and set-structure-modifiers, filter nil ids at the parse level, and guard the variant reposition/creation events against missing shapes. AI-assisted-by: hy3 * 🐛 Fix let scoping bugs in modifiers.cljs Two let forms in set-wasm-modifiers and apply-wasm-modifiers had their bindings vectors closed prematurely, causing undeclared var warnings for snap-pixel?, translation?, ids, update-shape, options, bool-ids, undo-id, and other bindings. In set-wasm-modifiers: removed premature ) after ] on the let bindings so the let body wraps snap-pixel? and translation?. In apply-wasm-modifiers: the cond form was not explicitly closed, so all subsequent bindings (ignore-tree, options, modif-tree, ids, update-shape, bool-ids, undo-id) were parsed as cond clauses instead of let bindings. Added ) to close cond after :else, and moved ] to close the bindings vector after undo-id. AI-assisted-by: mimo-v2.5-pro