Optimize nsBlockFrame::StealFrame when removing a normal flow child

RESOLVED FIXED in mozilla22

Status

()

Core
Layout: Block and Inline
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: mats, Assigned: mats)

Tracking

(Blocks: 1 bug, {perf})

Trunk
mozilla22
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Assignee)

Description

5 years ago
nsBlockFrame::StealFrame currently does a linear search over all lines
(including overflow lines) to find the given child frame.

We can optimize this in two ways: first, we now have a hash table for
lines that have many (>200) frames - we should use it when available;
second, we should test upfront if the given child is an inline or block
and then skip lines accordingly.
(Assignee)

Comment 1

5 years ago
Created attachment 725823 [details] [diff] [review]
fix

https://tbpl.mozilla.org/?tree=Try&rev=346b3251d96e
Attachment #725823 - Flags: review?(bzbarsky)
(Assignee)

Updated

5 years ago
Blocks: 834096
Comment on attachment 725823 [details] [diff] [review]
fix

r=me
Attachment #725823 - Flags: review?(bzbarsky) → review+
(Assignee)

Comment 3

5 years ago
https://hg.mozilla.org/integration/mozilla-inbound/rev/85397e0a6dba
(Assignee)

Comment 4

5 years ago
Oops, the above changeset had some unrelated changes in it -- backed out.
(Assignee)

Comment 5

5 years ago
Landed the right patch this time:
https://hg.mozilla.org/integration/mozilla-inbound/rev/a5170d1c3bac
https://hg.mozilla.org/mozilla-central/rev/a5170d1c3bac
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla22
You need to log in before you can comment on or make changes to this bug.