Repository navigation
v1.3.0
1.3.0 (2026-11-04)
This release states the length of an accessibility update's children
array, so the access tree checks every update the library builds
against it, and fixes a password's mask past the text limit and two
ways the access tree read through or outside an update. The API grows
by one field at the end of muiAccessUpdate. Layouts, styles, draw
lists, line breaks, shaped text, glyph images and motion curves are
those of 1.2.0.
Changed
muiAccessUpdategainschildCount, the length of itschildren
array.muiNode_BuildAccessUpdatesets it, andmuiAccessTree_Apply,
which every adapter'sApplycalls, refuses a node whose children
reach past it, a wrapping sum included. WithchildCount0 the
length is not stated, soApplycannot check the children against
it and keeping them in range is the caller's, as before. Positional
initializers ofmuiAccessUpdateget a missing-field warning
(-Wmissing-field-initializers) until they addchildCount; 0
keeps their behaviour
(#344).
Fixed
- A password of more than 715,827,882 grapheme clusters, a third of
MUI_MAX_TEXT_BYTES, is no longer laid out with a wrong mask. Up to
1,431,655,765 clusters its mask passed the text limit, and past that
its 32-bit length wrapped (2 bytes at 1,431,655,766 clusters). Such
a password now measures and paints as when memory runs out, counted
bymuiTextService_GetLayoutFailureCount, and accessibility does not
read it
(#336). muiAccessTree_Applyrefuses, withmui_errorInvalidand no change,
a NULL entry in an update's nodes and a node whose links are counted
with no array. It read through both
(#341).muiAccessTree_Applywith change callbacks no longer reads outside
the tree when an update sends a node again and lets it go in the
same apply: the old root sent with no parent, or a child its parent
stops listing. Such a node is told once, as removed
(#348).