Closed
Bug 536092
Opened 15 years ago
Closed 14 years ago
Micro optimizations for event handling
Categories
(Core :: DOM: Events, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: smaug, Assigned: smaug)
References
Details
Attachments
(1 file, 1 obsolete file)
10.59 KB,
patch
|
jst
:
review+
|
Details | Diff | Splinter Review |
There are several small things which show up in event handling profiles. The patch fixes few: some reduced QIing, less string handling, and not so many getService calls. Posted to TryServer
Assignee | ||
Comment 1•14 years ago
|
||
Comment on attachment 418576 [details] [diff] [review] WIP Most of this has landed elsewhere. A new patch with different optimizations and cleanups coming.
Attachment #418576 -
Attachment is obsolete: true
Assignee | ||
Comment 2•14 years ago
|
||
The change to nsGenericElement::doPreHandleEvent reduces the calls to ownerDoc->BindingManager()->GetInsertionParent, since elements don't usually have insertion parents. The change to dom/base/nsDOMClassInfo.cpp removes one extra Addref/Release for each time a listener is called. Rest of the patch reduces some QIing when accessing .target, .originalTarget or .currentTarget. Depending on the case this speeds up event dispatching 2-5%. (More if there are lots of event listeners.)
Attachment #435919 -
Flags: review?
Assignee | ||
Updated•14 years ago
|
Attachment #435919 -
Flags: review? → review?(jst)
Updated•14 years ago
|
Attachment #435919 -
Flags: review?(jst) → review+
Assignee | ||
Comment 3•14 years ago
|
||
http://hg.mozilla.org/mozilla-central/rev/b6d7952c5c5c
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Comment 4•14 years ago
|
||
It looks like the comment in this hunk is now inaccurate: // Event targets, needed by DOM Events // Using nsISupports, not nsIDOMEventTarget because in some cases // nsIDOMEventTarget is implemented as a tearoff. - nsCOMPtr<nsISupports> target; - nsCOMPtr<nsISupports> currentTarget; - nsCOMPtr<nsISupports> originalTarget; + nsCOMPtr<nsPIDOMEventTarget> target; + nsCOMPtr<nsPIDOMEventTarget> currentTarget; + nsCOMPtr<nsPIDOMEventTarget> originalTarget;
Assignee | ||
Comment 5•14 years ago
|
||
Oops, I'll update that
Assignee | ||
Comment 6•14 years ago
|
||
And note, since SetTarget QIs now to nsPIDOMEventTarget, things should be safe. nsEventDispatcher uses nsEvent.*target for its own purposes.
Assignee | ||
Comment 7•14 years ago
|
||
Additional fix to remove the bogus comment and fix a real issue in the patch. Fortunately a testcase did catch that one. http://hg.mozilla.org/mozilla-central/rev/dd83b3b5418e
You need to log in
before you can comment on or make changes to this bug.
Description
•