vectorcraft/crates
bflatastic 0efcaeb558 Importers: a brush that draws itself by name no longer crashes
A scatter brush whose art is an instance of a symbol stroked with that brush, or any brush whose
art is painted with a pattern whose tile is stroked with it, drew itself without end: a stack
overflow in a hand-written native file. Brush pieces already strip the brushes of their own
strokes; now what they draw by name that would draw a brushed stroke (a symbol instance, or a
pattern paint, also through the symbols and patterns those use) is left out too, in one place
(`stroke_pieces`, which every renderer and exporter calls with the document).

Probed the rest of item 2 of the depth follow-up with hand-written hostile inputs, kept as tests:
graph designs of deep art and of a symbol holding itself, Affinity groups nested to and past
both of its reader's caps, DXF blocks inserting themselves, EMF/WMF saving states without end,
and plug-in manifests and output nested 30,000 to 100,000 deep. None of them overflowed.
2026-10-14 10:13:45 +07:00
..
affinity Fix #1704: an Affinity document's pixel layers share one pixel allowance 2026-10-14 09:00:42 +07:00
brush Importers: a brush that draws itself by name no longer crashes 2026-10-14 10:13:45 +07:00
cad Importers: a brush that draws itself by name no longer crashes 2026-10-14 10:13:45 +07:00
color ICC profiles written here have their tags 4-byte aligned 2026-10-13 10:52:38 +07:00
doc Importers: a brush that draws itself by name no longer crashes 2026-10-14 10:13:45 +07:00
effects Fix #1724: 3D effects on a nonzero compound path keep the area its contours fill 2026-10-14 09:02:28 +07:00
engine Importers: a brush that draws itself by name no longer crashes 2026-10-14 10:13:45 +07:00
eps Importers: a brush that draws itself by name no longer crashes 2026-10-14 10:13:45 +07:00
format Importers: PDF nesting inside compressed streams no longer crashes (hayro 0.8) 2026-10-14 10:13:45 +07:00
geom PDF/EPS import: a clip only counts as covering the page when it does 2026-10-13 08:51:40 +07:00
mcp MCP: a connection holding bytes nobody asked for is replaced before the request is sent 2026-10-14 04:31:44 +07:00
metafile Importers: a brush that draws itself by name no longer crashes 2026-10-14 10:13:45 +07:00
pathops Fix #1462: Split Into Grid has its row and column sizes, gutters, totals, Add Guides and Preview 2026-10-13 02:48:36 +07:00
pdf Importers: a brush that draws itself by name no longer crashes 2026-10-14 10:13:45 +07:00
plugins Plug-ins: numeric defaults stay in their declared range 2026-10-13 02:21:35 +07:00
render Importers: a brush that draws itself by name no longer crashes 2026-10-14 10:13:45 +07:00
scriptcheck Scripts: Check Script… reports what a .jsx script needs and does, without running it 2026-10-13 13:36:41 +07:00
svg Importers: a brush that draws itself by name no longer crashes 2026-10-14 10:13:45 +07:00
testkit Fix #1387: a .ai whose PDF part is only text opens from it 2026-10-12 19:50:53 +07:00
text Fonts: a missing font's name is looked up once until fonts are added or rescanned 2026-10-14 06:01:10 +07:00
three-d Fix #1724: 3D effects on a nonzero compound path keep the area its contours fill 2026-10-14 09:02:28 +07:00
tools Marquee guide selection: one shared helper for both selection tools 2026-10-14 08:01:50 +07:00
trace Image Trace: gradients grown over noise and soft rims 2026-10-14 07:14:07 +07:00
ui-egui Fix #1685: a save or export that fails is reported in a dialog that stays 2026-10-14 09:03:51 +07:00