Stop using a RefPtr<IPC::Connection> as HashMap key in DisplayLink. Using a RefPtr as key is suboptimal and could leak to memory leaks. We now store IPC::Connection::UniqueID instead and look up the IPC::Connection from its identifier when we need to send an IPC.
Created attachment 430421 [details] Patch
Comment on attachment 430421 [details] Patch Great!
Committed r278395 (238420@main): <https://commits.webkit.org/238420@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 430421 [details].
<rdar://problem/78798133>
This patch is not defined C++. Single-threaded id to instance lookup can be implemented by maintaining the id map in constructor and destructor. Multi-threaded id to instance lookup cannot be implemented by maintaining the id map in the constructor and destructor. One thread might do a lookup while other thread might have already entered into the destructor, ending the life-time of the object.
Comment on attachment 430421 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=430421&action=review > Source/WebKit/Platform/IPC/Connection.cpp:309 > one thread here, object life time has ended > Source/WebKit/Platform/IPC/Connection.h:530 > + return connection->send(WTFMove(message), destinationID, sendOptions); other thread here, using object that is not alive anymore