зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1480364 - AbortSignal doesn't need to keep alive AbortController, r=smaug
This commit is contained in:
Родитель
864930c221
Коммит
09ac84e4ce
|
@ -56,7 +56,7 @@ AbortSignal*
|
|||
AbortController::Signal()
|
||||
{
|
||||
if (!mSignal) {
|
||||
mSignal = new AbortSignal(this, mAborted);
|
||||
mSignal = new AbortSignal(mGlobal, mAborted);
|
||||
}
|
||||
|
||||
return mSignal;
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
|
||||
#include "AbortSignal.h"
|
||||
|
||||
#include "AbortController.h"
|
||||
#include "mozilla/dom/Event.h"
|
||||
#include "mozilla/dom/AbortSignalBinding.h"
|
||||
|
||||
|
@ -17,12 +16,10 @@ NS_IMPL_CYCLE_COLLECTION_CLASS(AbortSignal)
|
|||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(AbortSignal,
|
||||
DOMEventTargetHelper)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mController)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(AbortSignal,
|
||||
DOMEventTargetHelper)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK(mController)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(AbortSignal)
|
||||
|
@ -31,10 +28,9 @@ NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper)
|
|||
NS_IMPL_ADDREF_INHERITED(AbortSignal, DOMEventTargetHelper)
|
||||
NS_IMPL_RELEASE_INHERITED(AbortSignal, DOMEventTargetHelper)
|
||||
|
||||
AbortSignal::AbortSignal(AbortController* aController,
|
||||
AbortSignal::AbortSignal(nsIGlobalObject* aGlobalObject,
|
||||
bool aAborted)
|
||||
: DOMEventTargetHelper(aController->GetParentObject())
|
||||
, mController(aController)
|
||||
: DOMEventTargetHelper(aGlobalObject)
|
||||
, mAborted(aAborted)
|
||||
{}
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
class AbortController;
|
||||
class AbortSignal;
|
||||
|
||||
// This class must be implemented by objects who want to follow a AbortSignal.
|
||||
|
@ -43,7 +42,7 @@ public:
|
|||
NS_DECL_ISUPPORTS_INHERITED
|
||||
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(AbortSignal, DOMEventTargetHelper)
|
||||
|
||||
AbortSignal(AbortController* aController, bool aAborted);
|
||||
AbortSignal(nsIGlobalObject* aGlobalObject, bool aAborted);
|
||||
explicit AbortSignal(bool aAborted);
|
||||
|
||||
JSObject*
|
||||
|
@ -66,8 +65,6 @@ public:
|
|||
private:
|
||||
~AbortSignal() = default;
|
||||
|
||||
RefPtr<AbortController> mController;
|
||||
|
||||
// Raw pointers. AbortFollower unregisters itself in the DTOR.
|
||||
nsTArray<AbortFollower*> mFollowers;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче