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:
Jan Varga
2022-11-09 17:15:34 +00:00
parent 9f7d86dd94
commit c056020b0f
4 changed files with 11 additions and 2 deletions

View File

@@ -107,7 +107,6 @@ FileSystemSyncAccessHandle::FileSystemSyncAccessHandle(
mMetadata(aMetadata), mMetadata(aMetadata),
mClosed(false) { mClosed(false) {
LOG(("Created SyncAccessHandle %p for stream %p", this, mStream.get())); LOG(("Created SyncAccessHandle %p for stream %p", this, mStream.get()));
mActor->SetAccessHandle(this);
} }
FileSystemSyncAccessHandle::~FileSystemSyncAccessHandle() { FileSystemSyncAccessHandle::~FileSystemSyncAccessHandle() {

View File

@@ -96,7 +96,6 @@ FileSystemWritableFileStream::FileSystemWritableFileStream(
mFileDesc = PR_ImportFile(PROsfd(rawFD.release())); mFileDesc = PR_ImportFile(PROsfd(rawFD.release()));
LOG(("Created WritableFileStream %p for fd %p", this, mFileDesc)); LOG(("Created WritableFileStream %p for fd %p", this, mFileDesc));
mActor->SetStream(this);
} }
FileSystemWritableFileStream::~FileSystemWritableFileStream() { FileSystemWritableFileStream::~FileSystemWritableFileStream() {

View File

@@ -109,6 +109,9 @@ RefPtr<FileSystemSyncAccessHandle> MakeResolution(
RefPtr<FileSystemSyncAccessHandle> result = new FileSystemSyncAccessHandle( RefPtr<FileSystemSyncAccessHandle> result = new FileSystemSyncAccessHandle(
aGlobal, aManager, actor, std::move(stream), aMetadata); aGlobal, aManager, actor, std::move(stream), aMetadata);
actor->SetAccessHandle(result);
return result; return result;
} }
@@ -127,6 +130,11 @@ RefPtr<FileSystemWritableFileStream> MakeResolution(
RefPtr<FileSystemWritableFileStream> result = RefPtr<FileSystemWritableFileStream> result =
FileSystemWritableFileStream::Create( FileSystemWritableFileStream::Create(
aGlobal, aManager, actor, properties.fileDescriptor(), aMetadata); aGlobal, aManager, actor, properties.fileDescriptor(), aMetadata);
if (result) {
actor->SetStream(result);
}
return result; return result;
} }

View File

@@ -29,6 +29,9 @@ FileSystemWritableFileStreamChild::~FileSystemWritableFileStreamChild() =
void FileSystemWritableFileStreamChild::SetStream( void FileSystemWritableFileStreamChild::SetStream(
FileSystemWritableFileStream* aStream) { FileSystemWritableFileStream* aStream) {
MOZ_ASSERT(aStream);
MOZ_ASSERT(!mStream);
mStream = aStream; mStream = aStream;
} }