mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-25 00:27:29 +09:00
Issue #2676 - Don't keep AbortController alive for AbortSignal
This commit is contained in:
parent
624ff30bfc
commit
949e3f0ac6
3 changed files with 5 additions and 11 deletions
|
|
@ -73,7 +73,7 @@ AbortSignal*
|
||||||
AbortController::Signal()
|
AbortController::Signal()
|
||||||
{
|
{
|
||||||
if (!mSignal) {
|
if (!mSignal) {
|
||||||
mSignal = new AbortSignal(this, mAborted);
|
mSignal = new AbortSignal(mGlobal, mAborted);
|
||||||
}
|
}
|
||||||
|
|
||||||
return mSignal;
|
return mSignal;
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
#include "AbortSignal.h"
|
#include "AbortSignal.h"
|
||||||
#include "AbortController.h"
|
|
||||||
#include "mozilla/dom/Event.h"
|
#include "mozilla/dom/Event.h"
|
||||||
#include "mozilla/dom/AbortSignalBinding.h"
|
#include "mozilla/dom/AbortSignalBinding.h"
|
||||||
|
|
||||||
|
|
@ -15,12 +15,10 @@ NS_IMPL_CYCLE_COLLECTION_CLASS(AbortSignal)
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(AbortSignal,
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(AbortSignal,
|
||||||
DOMEventTargetHelper)
|
DOMEventTargetHelper)
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mController)
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||||
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(AbortSignal,
|
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(AbortSignal,
|
||||||
DOMEventTargetHelper)
|
DOMEventTargetHelper)
|
||||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mController)
|
|
||||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||||
|
|
||||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(AbortSignal)
|
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(AbortSignal)
|
||||||
|
|
@ -29,10 +27,9 @@ NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper)
|
||||||
NS_IMPL_ADDREF_INHERITED(AbortSignal, DOMEventTargetHelper)
|
NS_IMPL_ADDREF_INHERITED(AbortSignal, DOMEventTargetHelper)
|
||||||
NS_IMPL_RELEASE_INHERITED(AbortSignal, DOMEventTargetHelper)
|
NS_IMPL_RELEASE_INHERITED(AbortSignal, DOMEventTargetHelper)
|
||||||
|
|
||||||
AbortSignal::AbortSignal(AbortController* aController,
|
AbortSignal::AbortSignal(nsIGlobalObject* aGlobalObject,
|
||||||
bool aAborted)
|
bool aAborted)
|
||||||
: DOMEventTargetHelper(aController->GetParentObject())
|
: DOMEventTargetHelper(aGlobalObject)
|
||||||
, mController(aController)
|
|
||||||
, mAborted(aAborted)
|
, mAborted(aAborted)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
namespace dom {
|
namespace dom {
|
||||||
|
|
||||||
class AbortController;
|
|
||||||
class AbortSignal;
|
class AbortSignal;
|
||||||
|
|
||||||
class AbortSignal final : public DOMEventTargetHelper
|
class AbortSignal final : public DOMEventTargetHelper
|
||||||
|
|
@ -38,7 +37,7 @@ public:
|
||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(AbortSignal, DOMEventTargetHelper)
|
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(AbortSignal, DOMEventTargetHelper)
|
||||||
|
|
||||||
AbortSignal(AbortController* aController, bool aAborted);
|
AbortSignal(nsIGlobalObject* aGlobalObject, bool aAborted);
|
||||||
explicit AbortSignal(bool aAborted);
|
explicit AbortSignal(bool aAborted);
|
||||||
|
|
||||||
JSObject*
|
JSObject*
|
||||||
|
|
@ -61,8 +60,6 @@ public:
|
||||||
private:
|
private:
|
||||||
~AbortSignal() = default;
|
~AbortSignal() = default;
|
||||||
|
|
||||||
RefPtr<AbortController> mController;
|
|
||||||
|
|
||||||
// Raw pointers. Follower unregisters itself in the DTOR.
|
// Raw pointers. Follower unregisters itself in the DTOR.
|
||||||
nsTArray<Follower*> mFollowers;
|
nsTArray<Follower*> mFollowers;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue