mirror of
https://github.com/storytold/wordcraft.git
synced 2026-10-24 18:36:58 -06:00
Each picture, and each embedded object or macro part kept for saving, was copied out of the unzipped package (bytes.to_vec()), so a document with pictures held them twice while it opened, and the package's copies were left behind as freed memory. Package now holds its parts as Arc<Vec<u8>>, the type the document keeps media and passthrough parts in, and hands them over with get_shared. keep_unmodelled also searches the main part in place instead of copying it. A 92 MB document with 20 pictures on macOS 27: the app's footprint once open 866 -> 772 MB (freed blocks kept 206 -> 118 MB, peak 915-932 -> 821-823 MB); wordcraft-cli info peak 319 -> 231 MB. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>