Closed Bug 1617542 Opened 4 years ago Closed 4 years ago

nsRefPtrHashtable::Put should accept a RefPtr rvalue

Categories

(Core :: XPCOM, task)

task
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla75
Tracking Status
firefox75 --- fixed

People

(Reporter: sg, Assigned: sg)

Details

Attachments

(2 files)

nsRefPtrHashtable::Put should accept a RefPtr rvalue, respectively the following should be valid:

nsRefPtrHashtable<nsIDHashKey, Foo> hashTable;
hashTable.Put(id1, MakeRefPtr<Foo>());
RefPtr<Foo> fooPtr;
hashTable.Put(id2, std::move(fooPtr));
Assignee: nobody → sgiesecke
Status: NEW → ASSIGNED
Component: MFBT → XPCOM
Pushed by sgiesecke@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/bc3eeefdfb6c
Make nsRefPtrHashtable::Put accept a RefPtr rvalue. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/3aea18e0396f
Remove nsRefPtrHashtable::Put overload accepting already_AddRefed and adapt all uses. r=froydnj
Pushed by csabou@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/5faa54ad950e
Revert changes to ipc/mscom/Interceptor.cpp.

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&group_state=expanded&resultStatus=busted%2Cexception&fromchange=cb38779e1eb6610ecb6ceeddd496841a30988136&selectedJob=290220436

Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=290220436&repo=autoland

Backout link: https://hg.mozilla.org/integration/autoland/rev/8e64763e531fde29c56d951c24c7363c2c844b95

[task 2020-02-24T17:44:06.869Z] 17:44:06     INFO -  z:/build/build/src/obj-firefox/dist/include/mozilla/RefPtr.h(289,3): note: candidate function
[task 2020-02-24T17:44:06.869Z] 17:44:06     INFO -    operator T*() const&
[task 2020-02-24T17:44:06.869Z] 17:44:06     INFO -    ^
[task 2020-02-24T17:44:06.869Z] 17:44:06     INFO -  z:/build/build/src/obj-firefox/dist/include/mozilla/RefPtr.h(305,3): note: candidate function
[task 2020-02-24T17:44:06.869Z] 17:44:06     INFO -    operator T*() const&& = delete;
[task 2020-02-24T17:44:06.870Z] 17:44:06     INFO -    ^
[task 2020-02-24T17:44:06.870Z] 17:44:06     INFO -  z:/build/build/src/ipc/mscom/Interceptor.cpp(50,61): note: passing argument to parameter 'aValue' here
[task 2020-02-24T17:44:06.870Z] 17:44:06     INFO -    void Put(IUnknown* aKey, already_AddRefed<IWeakReference> aValue) {
[task 2020-02-24T17:44:06.870Z] 17:44:06     INFO -                                                              ^
[task 2020-02-24T17:44:06.870Z] 17:44:06     INFO -  2 errors generated.
[task 2020-02-24T17:44:06.870Z] 17:44:06     INFO -  z:/build/build/src/config/rules.mk:731: recipe for target 'Interceptor.obj' failed
[task 2020-02-24T17:44:06.871Z] 17:44:06     INFO -  mozmake.EXE[4]: *** [Interceptor.obj] Error 1
[task 2020-02-24T17:44:06.871Z] 17:44:06     INFO -  mozmake.EXE[4]: Leaving directory 'z:/build/build/src/obj-firefox/ipc/mscom'
[task 2020-02-24T17:44:06.871Z] 17:44:06     INFO -  mozmake.EXE[4]: *** Waiting for unfinished jobs....
Flags: needinfo?(sgiesecke)
Pushed by sgiesecke@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1719312df871
Make nsRefPtrHashtable::Put accept a RefPtr rvalue. r=froydnj
https://hg.mozilla.org/integration/autoland/rev/bb4578710162
Remove nsRefPtrHashtable::Put overload accepting already_AddRefed and adapt all uses. r=froydnj

Fixed and re-landed.

Flags: needinfo?(sgiesecke)
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla75
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: