vectorcraft/crates
dotCooCoo ae27cf6c2b EPS: loops under a long dash array no longer hang the import
setdash took a dash array of any length, and the graphics state kept
a copy of it. gsave, gstate, currentgstate and setgstate copied the
whole pattern with the state, currentdash made an array of it, and
each stroke and strokepath copied and scanned it. Each of these
counted as one operation against the operation budget. Under a
pattern of 1,000,000 entries, a pass of gsave grestore took 0.38 ms
of user CPU time, and a pass of strokepath on a line took 2.05 ms.
Loops of the two would reach the budget after about 1.6 and 2.8
hours.

setdash now raises limitcheck for a pattern of more than 65,535
entries, the most elements an array has in a typical PostScript
implementation (PostScript Language Reference, third edition,
Table B.1). Saved and copied graphics states share the pattern.
setdash and each stroke count each entry they read or copy as one
operation, and currentdash counts the array it makes against the
memory budget. Under a pattern of 65,535 entries, loops of setdash,
currentdash, stroke and strokepath now run out of the operation
budget, or the memory budget for currentdash, after 0.08 to 0.31
seconds of user CPU time.

Tests: a pattern of 65,535 entries is set, and a pattern of 65,536
entries stops the reading with limitcheck. Under a pattern of 65,535
entries, 4,000,000 passes of gsave grestore and 2,000,000 passes of
gstate currentgstate setgstate finish, and loops of setdash,
currentdash and strokepath run out of a budget. The test of these
loops reads each program on a thread of its own and fails when no
result arrives within 20 seconds.
2026-10-12 09:43:15 +07:00
..
affinity Clippy 1.99: as_chunks in the Affinity raster tests 2026-10-09 23:15:36 +07:00
brush #1172: share an object's appearance with its undo history until it changes 2026-10-11 23:27:21 +07:00
cad fix(cad): set the closed bit on DXF SPLINE entities so closed curves import into CAM (#1299) 2026-10-12 08:53:36 +07:00
color Review: palette writing keeps the swatches PaletteFormat::holds names; ROADMAP (#1110) 2026-10-11 11:33:07 +07:00
doc Links: Find in Folder… looks for missing linked files in a folder and its subfolders 2026-10-12 08:16:41 +07:00
effects G2: add Artistic Film Grain live effect 2026-10-12 07:26:05 +07:00
engine Paint: fill, stroke, gradient and Appearance panel commands that change nothing record no undo step 2026-10-12 09:43:15 +07:00
eps EPS: loops under a long dash array no longer hang the import 2026-10-12 09:43:15 +07:00
format Graph designs and marker designs: Object › Graph › Design… and Marker… 2026-10-12 06:42:49 +07:00
geom #1111: a blend's spine bends into a curve 2026-10-11 17:49:41 +07:00
mcp MCP: lost replies report uncertainty instead of replaying edits 2026-10-12 06:59:49 +07:00
metafile Part of #637: the editing data's structure read whole, colours, gradients, transparency, names, images and artboards included 2026-10-09 16:02:36 +07:00
pathops Shape Builder: a line's loose end past a crossing no longer runs out and back in most cases 2026-10-12 00:16:22 +07:00
pdf TEST.1: correct font shaping and embedding oracles 2026-10-12 06:59:49 +07:00
plugins Review: a whole number past i64::MAX is past any maximum; ROADMAP (#1091) 2026-10-11 12:24:46 +07:00
render perf: テクスチャ効果の距離判定を軽くする #1257 2026-10-12 07:25:58 +07:00
svg SVG.1: preserve data attributes and validate export ranges 2026-10-12 06:59:49 +07:00
testkit variables: fix binding lifetime, dataset editing and the missing UI to define 2026-10-10 23:34:21 +07:00
text Type: Proportional Metrics bring their kerning — `apkn` with `palt`, `vkrn` and `vapk` with `vpal` (#966) 2026-10-12 07:25:55 +07:00
three-d M9: add live Revolve with artboard rotation and lighting controls 2026-10-10 23:44:46 +07:00
tools Merge pull request #1313 from itrycodinganditsbad/fix-1274 2026-10-12 08:20:33 +07:00
trace Image Trace: an oversized image decodes within the allocation its 192 megapixel limit needs (512 MB on the web) 2026-10-12 08:23:19 +07:00
ui-egui Plug-ins: share the whole-number field test harness 2026-10-12 09:21:30 +07:00