Skip to content

Commit 9d024af

Browse files
committed
Bug 1660555 - Make AbortFollower::mFollowingSignal a WeakPtr r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D136446
1 parent 6515360 commit 9d024af

File tree

8 files changed

+3
-21
lines changed

8 files changed

+3
-21
lines changed

dom/abort/AbortFollower.h

+3-7
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include "jsapi.h"
1111
#include "nsISupportsImpl.h"
1212
#include "nsTObserverArray.h"
13+
#include "mozilla/WeakPtr.h"
1314

1415
namespace mozilla {
1516
namespace dom {
@@ -32,21 +33,16 @@ class AbortFollower : public nsISupports {
3233
AbortSignalImpl* Signal() const { return mFollowingSignal; }
3334

3435
protected:
35-
// Subclasses of this class must call these Traverse and Unlink functions
36-
// during corresponding cycle collection operations.
37-
static void Traverse(AbortFollower* aFollower,
38-
nsCycleCollectionTraversalCallback& cb);
39-
4036
static void Unlink(AbortFollower* aFollower) { aFollower->Unfollow(); }
4137

4238
virtual ~AbortFollower();
4339

4440
friend class AbortSignalImpl;
4541

46-
RefPtr<AbortSignalImpl> mFollowingSignal;
42+
WeakPtr<AbortSignalImpl> mFollowingSignal;
4743
};
4844

49-
class AbortSignalImpl : public nsISupports {
45+
class AbortSignalImpl : public nsISupports, public SupportsWeakPtr {
5046
public:
5147
explicit AbortSignalImpl(bool aAborted, JS::Handle<JS::Value> aReason);
5248

dom/abort/AbortSignal.cpp

-7
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@ NS_IMPL_CYCLE_COLLECTION_CLASS(AbortSignal)
9999
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(AbortSignal,
100100
DOMEventTargetHelper)
101101
AbortSignalImpl::Traverse(static_cast<AbortSignalImpl*>(tmp), cb);
102-
AbortFollower::Traverse(static_cast<AbortFollower*>(tmp), cb);
103102
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
104103

105104
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(AbortSignal,
@@ -213,10 +212,4 @@ void AbortFollower::Unfollow() {
213212

214213
bool AbortFollower::IsFollowing() const { return !!mFollowingSignal; }
215214

216-
/* static */ void AbortFollower::Traverse(
217-
AbortFollower* aFollower, nsCycleCollectionTraversalCallback& cb) {
218-
ImplCycleCollectionTraverse(cb, aFollower->mFollowingSignal,
219-
"mFollowingSignal", 0);
220-
}
221-
222215
} // namespace mozilla::dom

dom/events/EventListenerManager.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -2144,7 +2144,6 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE(EventListenerManager::ListenerSignalFollower)
21442144
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(
21452145
EventListenerManager::ListenerSignalFollower)
21462146
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mListener)
2147-
AbortFollower::Traverse(static_cast<AbortFollower*>(tmp), cb);
21482147
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
21492148

21502149
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(

dom/fetch/Fetch.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,6 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(WorkerSignalFollower)
175175
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
176176

177177
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(WorkerSignalFollower)
178-
AbortFollower::Traverse(static_cast<AbortFollower*>(tmp), cb);
179178
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
180179

181180
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(WorkerSignalFollower)
@@ -1816,7 +1815,6 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_END
18161815

18171816
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(EmptyBody,
18181817
FetchBody<EmptyBody>)
1819-
AbortFollower::Traverse(static_cast<AbortFollower*>(tmp), cb);
18201818
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mOwner)
18211819
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mAbortSignalImpl)
18221820
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mFetchStreamReader)

dom/fetch/FetchObserver.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ NS_IMPL_CYCLE_COLLECTION_CLASS(FetchObserver)
1414

1515
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(FetchObserver,
1616
DOMEventTargetHelper)
17-
AbortFollower::Traverse(static_cast<AbortFollower*>(tmp), cb);
1817
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
1918

2019
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(FetchObserver,

dom/fetch/Request.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(Request, FetchBody<Request>)
5353
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mOwner)
5454
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mHeaders)
5555
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mSignal)
56-
AbortFollower::Traverse(static_cast<AbortFollower*>(tmp), cb);
5756
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
5857

5958
NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(Request, FetchBody<Request>)

dom/fetch/Response.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(Response, FetchBody<Response>)
5656
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
5757

5858
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(Response, FetchBody<Response>)
59-
AbortFollower::Traverse(static_cast<AbortFollower*>(tmp), cb);
6059
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mOwner)
6160
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mHeaders)
6261
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mSignalImpl)

dom/webauthn/WebAuthnManager.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_END
5353

5454
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(WebAuthnManager,
5555
WebAuthnManagerBase)
56-
AbortFollower::Traverse(static_cast<AbortFollower*>(tmp), cb);
5756
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mTransaction)
5857
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
5958

0 commit comments

Comments
 (0)