perf(layout): bereken doorlopende lijstnummers lineair per deckrevisie #1050
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#1050
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
numberedListStartFor loopt recursief terug door de hele doorlopende keten. Rail, presentatiemodus en export roepen dit per slide opnieuw aan.
Impact
Voor 5000 doorlopend genummerde slides zijn 12.497.500 eerdere-slidebezoeken nodig en heeft de laatste call recursiediepte 4999, met stack-overflowrisico.
Relevante code
Acceptatie
Opgepakt. Tak: feat/collab-recovery-key-978 (huidige werkkopie). Reikwijdte: lib/services/slide_layout_metrics.dart (nieuwe lineaire numberedListStarts), slide_rasterizer.dart, widgets/panels/slide_list_panel.dart; single-slide-oppervlakken houden numberedListStartFor, nu recursievrij.
Gebouwd en gemerged op main (
13436706, PR #1076). numberedListStarts berekent alle startnummers in één lineaire pass; rasterizer en slide-lijstpaneel delen die pass, numberedListStartFor delegeert nu ernaar en is recursievrij (single-slide-oppervlakken: preview, presenter, audience). Schaaltest over 5000 slides bewijst lineair gedrag en dat de diepste slide zonder recursie oplost; tests bewaken onderbrekingen/herstarts en de reorder-helper die ik moest afsplitsen voor de klasse/bestand/methodepoorten. make check groen. Niet meegenomen: de full-deck-preview en export gebruiken geen doorlopende nummering (findings-render), dus die bleven ongemoeid.