mirror of
https://github.com/roytam1/basilisk55.git
synced 2026-05-26 13:29:16 +00:00
import from UXP: [network] Hold strong ref in nsSyncStreamListener::Available. (68fd6722)
This commit is contained in:
@@ -122,16 +122,22 @@ nsSyncStreamListener::Close()
|
||||
NS_IMETHODIMP
|
||||
nsSyncStreamListener::Available(uint64_t *result)
|
||||
{
|
||||
if (NS_FAILED(mStatus))
|
||||
return mStatus;
|
||||
// Nested event loop can run code that drops the last external reference.
|
||||
RefPtr<nsSyncStreamListener> self(this);
|
||||
|
||||
mStatus = mPipeIn->Available(result);
|
||||
if (NS_SUCCEEDED(mStatus) && (*result == 0) && !mDone) {
|
||||
mStatus = WaitForData();
|
||||
if (NS_SUCCEEDED(mStatus))
|
||||
mStatus = mPipeIn->Available(result);
|
||||
}
|
||||
if (NS_FAILED(mStatus)) {
|
||||
return mStatus;
|
||||
}
|
||||
|
||||
mStatus = mPipeIn->Available(result);
|
||||
if (NS_SUCCEEDED(mStatus) && (*result == 0) && !mDone) {
|
||||
mStatus = WaitForData();
|
||||
if (NS_SUCCEEDED(mStatus)) {
|
||||
mStatus = mPipeIn->Available(result);
|
||||
}
|
||||
}
|
||||
|
||||
return mStatus;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
|
||||
Reference in New Issue
Block a user