зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1499105 - P2 - NormalFileHandleOp::Cleanup() no longer asserts mResponseSent when called after failed initialization r=janv
If NormalFileHandleOp's initialisation fails, it is not possible to send a failure response, which is why mResponseSent remains `false`. To not assert the value of mResponseSent in such cases, check for a new Boolean member mEnqueued has been introduced. If mEnqueued is `false`, that suggests initialization failure. Differential Revision: https://phabricator.services.mozilla.com/D59326 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
a27e13bf52
Коммит
f026ab19d2
|
@ -307,6 +307,9 @@ class FileHandleOp {
|
|||
protected:
|
||||
nsCOMPtr<nsIEventTarget> mOwningEventTarget;
|
||||
RefPtr<FileHandle> mFileHandle;
|
||||
#ifdef DEBUG
|
||||
bool mEnqueued;
|
||||
#endif
|
||||
|
||||
public:
|
||||
NS_INLINE_DECL_THREADSAFE_REFCOUNTING(FileHandleOp)
|
||||
|
@ -335,7 +338,12 @@ class FileHandleOp {
|
|||
protected:
|
||||
FileHandleOp(FileHandle* aFileHandle)
|
||||
: mOwningEventTarget(GetCurrentThreadSerialEventTarget()),
|
||||
mFileHandle(aFileHandle) {
|
||||
mFileHandle(aFileHandle)
|
||||
#ifdef DEBUG
|
||||
,
|
||||
mEnqueued(false)
|
||||
#endif
|
||||
{
|
||||
AssertIsOnOwningThread();
|
||||
MOZ_ASSERT(aFileHandle);
|
||||
}
|
||||
|
@ -1673,6 +1681,10 @@ void FileHandleOp::Enqueue() {
|
|||
|
||||
fileHandleThreadPool->Enqueue(mFileHandle, this, false);
|
||||
|
||||
#ifdef DEBUG
|
||||
mEnqueued = true;
|
||||
#endif
|
||||
|
||||
mFileHandle->NoteActiveRequest();
|
||||
}
|
||||
|
||||
|
@ -1725,7 +1737,7 @@ bool NormalFileHandleOp::Init(FileHandle* aFileHandle) {
|
|||
void NormalFileHandleOp::Cleanup() {
|
||||
AssertIsOnOwningThread();
|
||||
MOZ_ASSERT(mFileHandle);
|
||||
MOZ_ASSERT_IF(!IsActorDestroyed(), mResponseSent);
|
||||
MOZ_ASSERT_IF(mEnqueued && !IsActorDestroyed(), mResponseSent);
|
||||
|
||||
mFileHandle = nullptr;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче