mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-04 23:08:39 +09:00
Issue #1442 - Part 18 - Cycle collect FetchStreamReader. https://bugzilla.mozilla.org/show_bug.cgi?id=1128959
This commit is contained in:
parent
e22845913d
commit
b898780bb1
4 changed files with 28 additions and 6 deletions
|
|
@ -922,10 +922,9 @@ FetchBody<Derived>::BodyUsed() const
|
|||
// If this object is disturbed or locked, return false.
|
||||
if (mReadableStreamBody) {
|
||||
AutoJSAPI jsapi;
|
||||
// If we start tracking ownership, we need something like this.
|
||||
//if (!jsapi.Init(mOwner)) {
|
||||
// return true;
|
||||
//}
|
||||
if (!jsapi.Init(mOwner)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,27 @@ private:
|
|||
|
||||
} // anonymous
|
||||
|
||||
NS_IMPL_ISUPPORTS(FetchStreamReader, nsIOutputStreamCallback)
|
||||
NS_IMPL_CYCLE_COLLECTING_ADDREF(FetchStreamReader)
|
||||
NS_IMPL_CYCLE_COLLECTING_RELEASE(FetchStreamReader)
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_CLASS(FetchStreamReader)
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(FetchStreamReader)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mGlobal)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(FetchStreamReader)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mGlobal)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(FetchStreamReader)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mReader)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRACE_END
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(FetchStreamReader)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIOutputStreamCallback)
|
||||
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIOutputStreamCallback)
|
||||
NS_INTERFACE_MAP_END
|
||||
|
||||
/* static */ nsresult
|
||||
FetchStreamReader::Create(JSContext* aCx, nsIGlobalObject* aGlobal,
|
||||
|
|
|
|||
|
|
@ -23,7 +23,8 @@ class FetchStreamReader final : public nsIOutputStreamCallback
|
|||
, public PromiseNativeHandler
|
||||
{
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
||||
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS_AMBIGUOUS(FetchStreamReader, nsIOutputStreamCallback)
|
||||
NS_DECL_NSIOUTPUTSTREAMCALLBACK
|
||||
|
||||
// This creates a nsIInputStream able to retrieve data from the ReadableStream
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ NS_IMPL_CYCLE_COLLECTION_CLASS(Response)
|
|||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(Response)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mOwner)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mHeaders)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mFetchStreamReader)
|
||||
|
||||
tmp->mReadableStreamBody = nullptr;
|
||||
tmp->mReadableStreamReader = nullptr;
|
||||
|
|
@ -46,6 +47,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
|||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(Response)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mOwner)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mHeaders)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mFetchStreamReader)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(Response)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue