mirror of
https://github.com/storytold/wordcraft.git
synced 2026-10-27 03:47:09 -06:00
ODT: every frame inflated its picture entry again, and the byte budget was checked only after inflating, so frames pointing at an entry that didn't fit (or at any entry once the budget was used up) inflated it again each time. Each entry is now inflated at most once, and only when the size it declares fits in what is left; the bytes inflated and every later copy are charged, so an entry that inflates past its declared size uses the budget up and nothing is inflated after it. .doc: inline pictures remembered only successes, so a picture that couldn't be read or didn't fit was located, decoded and copied again for every anchor on it, and an inline shape's BLIP was decoded against the whole media cap rather than what was left. Failures are remembered too, bytes are copied and decoded only within what is left of the cap, and nothing is read once it is used up. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>