Closed Bug 83511 Opened 23 years ago Closed 23 years ago

AtomKey wastes time refcounting atoms

Categories

(Core :: CSS Parsing and Computation, defect, P2)

defect

Tracking

()

VERIFIED FIXED
mozilla0.9.2

People

(Reporter: dbaron, Assigned: dbaron)

References

Details

(Keywords: perf)

Right now AtomKey (in nsCSSStyleSheet.cpp) wastes a bit of time refcounting
atoms whenever we create one on the stack.  This shows up in profiles.

I think a solution here would be to split it into three classes:
  nsAtomKeyBase
  nsAtomKey
  nsDependentAtomKey

nsAtomKeyBase would have all methods except for the constructor and destructor
(which would be inlined).

nsAtomKey would addref and release in its ctor/dtor and would be used in the
hashtable itself.

nsDependentAtomKey would just assign to the atom member without addref/release
and could be used on the stack with an atom one already owns.

Does that make sense?
Blocks: 83482
Status: NEW → ASSIGNED
Keywords: perf
Priority: -- → P2
Target Milestone: --- → mozilla0.9.2
Fix checked in 2001-06-04 18:00 PDT.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Definitely a rubber stamp verification here...
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.