mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-05-01 20:17:13 +02:00
Replace per-frame heap-allocated RefCounted ScrollFrame objects with a single contiguous Vector<ScrollFrame> inside ScrollState. All frames for a viewport are now stored in one allocation, using type-safe ScrollFrameIndex instead of RefPtr pointers. This reduces allocation churn, improves cache locality, and moves parent-chain traversal (cumulative offset, nearest scrolling ancestor) into ScrollState — similar to how visual context nodes were recently consolidated into AccumulatedVisualContextTree.
21 lines
890 B
Plaintext
21 lines
890 B
Plaintext
AccumulatedVisualContext Tree:
|
|
[1] scroll_frame_id=1 (PaintableWithLines(BlockContainer<PRE>#out))
|
|
[2] clip=[9,9 200x20] (PaintableWithLines(BlockContainer<DIV>))
|
|
[3] clip=[11,10 196x18]
|
|
[4] clip=[219,9 200x20] (PaintableWithLines(BlockContainer<DIV>))
|
|
[5] clip=[221,10 196x18]
|
|
|
|
DisplayList:
|
|
SaveLayer@0
|
|
FillRect@1 rect=[8,8 202x22] color=rgb(255, 255, 255)
|
|
FillPath@1 path_bounding_rect=[8,8 202x22]
|
|
FillRect@1 rect=[218,8 202x22] color=rgb(255, 255, 255)
|
|
FillPath@1 path_bounding_rect=[218,8 202x22]
|
|
DrawGlyphRun@1 rect=[210,14 8x18] translation=[210,27.796875] color=rgb(0, 0, 0)
|
|
DrawGlyphRun@3 rect=[11,10 28x18] translation=[11,23.796875] color=rgb(0, 0, 0)
|
|
DrawGlyphRun@5 rect=[221,10 28x18] translation=[221,23.796875] color=rgb(0, 0, 0)
|
|
FillRect@5 rect=[221,10 1x18] color=rgb(0, 0, 0)
|
|
FillPath@1 path_bounding_rect=[216,6 206x26]
|
|
Restore@0
|
|
|