Closed Bug 1376468 Opened 2 years ago Closed 2 years ago

ProgressTracker::RemoveObserver does unnecessary hashtable lookups

Categories

(Core :: ImageLib, enhancement, P3)

enhancement

Tracking

()

RESOLVED FIXED
mozilla56
Tracking Status
firefox56 --- fixed

People

(Reporter: mats, Assigned: mats)

References

Details

(Keywords: perf)

Attachments

(1 file)

No description provided.
Comment on attachment 8881411 [details] [diff] [review]
Use Lookup instead of Get+Remove to avoid unnecessary hashtable lookups

Review of attachment 8881411 [details] [diff] [review]:
-----------------------------------------------------------------

::: image/ProgressTracker.cpp
@@ +472,5 @@
>    // Remove the observer from the list.
>    bool removed = mObservers.Write([=](ObserverTable* aTable) {
> +    if (auto entry = aTable->Lookup(observer)) {
> +      entry.Remove();
> +      return true;

Another valid use case for Remove() having a useful return value.
Attachment #8881411 - Flags: review?(nfroyd) → review+
Pushed by mpalmgren@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/1cccacc0f442
Use Lookup instead of Get+Remove to avoid unnecessary hashtable lookups.  r=froydnj
https://hg.mozilla.org/mozilla-central/rev/1cccacc0f442
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
You need to log in before you can comment on or make changes to this bug.