Closed Bug 45668 Opened 24 years ago Closed 24 years ago

convert global history to use Mork's row-level APIs

Categories

(Core :: DOM: Navigation, defect, P3)

defect

Tracking

()

VERIFIED FIXED

People

(Reporter: waterson, Assigned: waterson)

Details

(Keywords: perf, Whiteboard: FIX IN HAND)

Attachments

(1 file)

Global history is currently using Mork's cell-level APIs to look up values. This is fairly expensive, because it means that each lookup causes an allocation. Change this to use row-level APIs which do not require this overhead. This is important because it's called from nsILinkHandler::GetLinkState(), which is called an enormous number of times from the style system for link coloring.
Status: NEW → ASSIGNED
Keywords: nsbeta3, perf
Target Milestone: --- → M18
bienvenu: could you sanity check these changes? thanks! (FWIW, this is another 5% speed boost on page layout: drops one second out of 20 from large LXR pages...)
Whiteboard: FIX IN HAND
Looks sane to me. One comment, though. AliasCellYarn will always succeed, so that you can't use it to tell if a column/cell really exists in a row. It returns an empty yarn if the cell isn't in the row. I'm not sure from your code if you care or not. The message db code did care, because it tries to default certain values if the cell didn't exist, and that was the one thing that broke when I converted to the newer api.
I can test yarn.mYarn_Fill to see if there was a value, right? I'll double-check to make sure I've tested it when I need to...
yes, that's right. fill will be 0.
fix checked in
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
code-level fix marking VERIFIED (rubber-stamp)
Status: RESOLVED → VERIFIED
Component: History: Session → Document Navigation
QA Contact: claudius → docshell
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: