Bug 1800470, make it possible to extend WritableStream with another cycle collectable class, r=saschanaz

Differential Revision: https://phabricator.services.mozilla.com/D162287
This commit is contained in:
Olli Pettay
2022-11-17 21:32:57 +00:00
parent 254ff5438f
commit d652d9fa29
7 changed files with 72 additions and 13 deletions

View File

@@ -116,7 +116,7 @@ FileSystemWritableFileStream::FileSystemWritableFileStream(
RefPtr<FileSystemWritableFileStreamChild> aActor,
const ::mozilla::ipc::FileDescriptor& aFileDescriptor,
const fs::FileSystemEntryMetadata& aMetadata)
: WritableStream(aGlobal),
: WritableStream(aGlobal, HoldDropJSObjectsCaller::Explicit),
mManager(aManager),
mActor(std::move(aActor)),
mFileDesc(nullptr),
@@ -125,12 +125,16 @@ FileSystemWritableFileStream::FileSystemWritableFileStream(
auto rawFD = aFileDescriptor.ClonePlatformHandle();
mFileDesc = PR_ImportFile(PROsfd(rawFD.release()));
mozilla::HoldJSObjects(this);
LOG(("Created WritableFileStream %p for fd %p", this, mFileDesc));
}
FileSystemWritableFileStream::~FileSystemWritableFileStream() {
MOZ_ASSERT(!mActor);
MOZ_ASSERT(mClosed);
mozilla::DropJSObjects(this);
}
// https://streams.spec.whatwg.org/#writablestream-set-up