Bug 1428759: Remove mutual exclusion from WeakReferenceSupport interface queries; r=Jamie

This commit is contained in:
Aaron Klotz
2018-01-12 14:17:18 -07:00
parent 5d6c434fea
commit 41926b95b6
4 changed files with 23 additions and 46 deletions

View File

@@ -101,24 +101,6 @@ WeakReferenceSupport::WeakReferenceSupport(Flags aFlags)
, mFlags(aFlags)
{
mSharedRef = new detail::SharedRef(this);
::InitializeCS(mCSForQI);
}
WeakReferenceSupport::~WeakReferenceSupport()
{
::DeleteCriticalSection(&mCSForQI);
}
void
WeakReferenceSupport::Lock()
{
::EnterCriticalSection(&mCSForQI);
}
void
WeakReferenceSupport::Unlock()
{
::LeaveCriticalSection(&mCSForQI);
}
HRESULT
@@ -136,8 +118,7 @@ WeakReferenceSupport::QueryInterface(REFIID riid, void** ppv)
if (riid == IID_IUnknown || riid == IID_IWeakReferenceSource) {
punk = static_cast<IUnknown*>(this);
} else {
AutoCriticalSection lock(&mCSForQI);
HRESULT hr = ThreadSafeQueryInterface(riid, getter_AddRefs(punk));
HRESULT hr = WeakRefQueryInterface(riid, getter_AddRefs(punk));
if (FAILED(hr)) {
return hr;
}