mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-23 07:37:29 +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 this object is disturbed or locked, return false.
|
||||||
if (mReadableStreamBody) {
|
if (mReadableStreamBody) {
|
||||||
AutoJSAPI jsapi;
|
AutoJSAPI jsapi;
|
||||||
// If we start tracking ownership, we need something like this.
|
if (!jsapi.Init(mOwner)) {
|
||||||
//if (!jsapi.Init(mOwner)) {
|
return true;
|
||||||
// return true;
|
}
|
||||||
//}
|
|
||||||
|
|
||||||
JSContext* cx = jsapi.cx();
|
JSContext* cx = jsapi.cx();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,27 @@ private:
|
||||||
|
|
||||||
} // anonymous
|
} // 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
|
/* static */ nsresult
|
||||||
FetchStreamReader::Create(JSContext* aCx, nsIGlobalObject* aGlobal,
|
FetchStreamReader::Create(JSContext* aCx, nsIGlobalObject* aGlobal,
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,8 @@ class FetchStreamReader final : public nsIOutputStreamCallback
|
||||||
, public PromiseNativeHandler
|
, public PromiseNativeHandler
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NS_DECL_ISUPPORTS
|
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
||||||
|
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS_AMBIGUOUS(FetchStreamReader, nsIOutputStreamCallback)
|
||||||
NS_DECL_NSIOUTPUTSTREAMCALLBACK
|
NS_DECL_NSIOUTPUTSTREAMCALLBACK
|
||||||
|
|
||||||
// This creates a nsIInputStream able to retrieve data from the ReadableStream
|
// 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_BEGIN(Response)
|
||||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mOwner)
|
NS_IMPL_CYCLE_COLLECTION_UNLINK(mOwner)
|
||||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mHeaders)
|
NS_IMPL_CYCLE_COLLECTION_UNLINK(mHeaders)
|
||||||
|
NS_IMPL_CYCLE_COLLECTION_UNLINK(mFetchStreamReader)
|
||||||
|
|
||||||
tmp->mReadableStreamBody = nullptr;
|
tmp->mReadableStreamBody = nullptr;
|
||||||
tmp->mReadableStreamReader = 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_BEGIN(Response)
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mOwner)
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mOwner)
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mHeaders)
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mHeaders)
|
||||||
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mFetchStreamReader)
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(Response)
|
NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(Response)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue