Bug 1798459 - Call SetStream on actor only when FileSystemWritableFileStream was successfully created; r=dom-storage-reviewers,jesup
This patch also moves a similar call for SyncAccessHandle. Differential Revision: https://phabricator.services.mozilla.com/D161274
This commit is contained in:
@@ -107,7 +107,6 @@ FileSystemSyncAccessHandle::FileSystemSyncAccessHandle(
|
||||
mMetadata(aMetadata),
|
||||
mClosed(false) {
|
||||
LOG(("Created SyncAccessHandle %p for stream %p", this, mStream.get()));
|
||||
mActor->SetAccessHandle(this);
|
||||
}
|
||||
|
||||
FileSystemSyncAccessHandle::~FileSystemSyncAccessHandle() {
|
||||
|
||||
@@ -96,7 +96,6 @@ FileSystemWritableFileStream::FileSystemWritableFileStream(
|
||||
mFileDesc = PR_ImportFile(PROsfd(rawFD.release()));
|
||||
|
||||
LOG(("Created WritableFileStream %p for fd %p", this, mFileDesc));
|
||||
mActor->SetStream(this);
|
||||
}
|
||||
|
||||
FileSystemWritableFileStream::~FileSystemWritableFileStream() {
|
||||
|
||||
@@ -109,6 +109,9 @@ RefPtr<FileSystemSyncAccessHandle> MakeResolution(
|
||||
|
||||
RefPtr<FileSystemSyncAccessHandle> result = new FileSystemSyncAccessHandle(
|
||||
aGlobal, aManager, actor, std::move(stream), aMetadata);
|
||||
|
||||
actor->SetAccessHandle(result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -127,6 +130,11 @@ RefPtr<FileSystemWritableFileStream> MakeResolution(
|
||||
RefPtr<FileSystemWritableFileStream> result =
|
||||
FileSystemWritableFileStream::Create(
|
||||
aGlobal, aManager, actor, properties.fileDescriptor(), aMetadata);
|
||||
|
||||
if (result) {
|
||||
actor->SetStream(result);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,6 +29,9 @@ FileSystemWritableFileStreamChild::~FileSystemWritableFileStreamChild() =
|
||||
|
||||
void FileSystemWritableFileStreamChild::SetStream(
|
||||
FileSystemWritableFileStream* aStream) {
|
||||
MOZ_ASSERT(aStream);
|
||||
MOZ_ASSERT(!mStream);
|
||||
|
||||
mStream = aStream;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user