diff --git a/dom/abort/AbortController.cpp b/dom/abort/AbortController.cpp index a3830bff8de8..9bd8202559bc 100644 --- a/dom/abort/AbortController.cpp +++ b/dom/abort/AbortController.cpp @@ -15,20 +15,9 @@ namespace mozilla::dom { -NS_IMPL_CYCLE_COLLECTION_CLASS(AbortController) -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(AbortController) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mGlobal, mSignal) - tmp->mReason.setUndefined(); - NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER -NS_IMPL_CYCLE_COLLECTION_UNLINK_END -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(AbortController) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mGlobal, mSignal) -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END - -NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(AbortController) - NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mReason) -NS_IMPL_CYCLE_COLLECTION_TRACE_END +NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_WITH_JS_MEMBERS(AbortController, + (mGlobal, mSignal), + (mReason)) NS_IMPL_CYCLE_COLLECTING_ADDREF(AbortController) NS_IMPL_CYCLE_COLLECTING_RELEASE(AbortController) diff --git a/dom/base/DOMException.cpp b/dom/base/DOMException.cpp index 9a60535e3a7f..b218a09fb613 100644 --- a/dom/base/DOMException.cpp +++ b/dom/base/DOMException.cpp @@ -147,24 +147,9 @@ NS_INTERFACE_MAP_END NS_IMPL_CYCLE_COLLECTING_ADDREF(Exception) NS_IMPL_CYCLE_COLLECTING_RELEASE(Exception) -NS_IMPL_CYCLE_COLLECTION_CLASS(Exception) - -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(Exception) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mLocation) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mData) -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END - -NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(Exception) - NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mThrownJSVal) -NS_IMPL_CYCLE_COLLECTION_TRACE_END - -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(Exception) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mLocation) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mData) - NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER - tmp->mThrownJSVal.setNull(); -NS_IMPL_CYCLE_COLLECTION_UNLINK_END +NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_WITH_JS_MEMBERS(Exception, + (mLocation, mData), + (mThrownJSVal)) Exception::Exception(const nsACString& aMessage, nsresult aResult, const nsACString& aName, nsIStackFrame* aLocation, diff --git a/dom/base/DOMRequest.cpp b/dom/base/DOMRequest.cpp index 91ec9b65721f..93c1d75d89b1 100644 --- a/dom/base/DOMRequest.cpp +++ b/dom/base/DOMRequest.cpp @@ -36,26 +36,10 @@ DOMRequest::DOMRequest(nsIGlobalObject* aGlobal) DOMRequest::~DOMRequest() { mozilla::DropJSObjects(this); } -NS_IMPL_CYCLE_COLLECTION_CLASS(DOMRequest) - -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(DOMRequest, - DOMEventTargetHelper) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mError) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mPromise) -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END - -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(DOMRequest, - DOMEventTargetHelper) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mError) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mPromise) - tmp->mResult.setUndefined(); -NS_IMPL_CYCLE_COLLECTION_UNLINK_END - -NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(DOMRequest, DOMEventTargetHelper) - // Don't need NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER because - // DOMEventTargetHelper does it for us. - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mResult) -NS_IMPL_CYCLE_COLLECTION_TRACE_END +NS_IMPL_CYCLE_COLLECTION_INHERITED_WITH_JS_MEMBERS(DOMRequest, + DOMEventTargetHelper, + (mError, mPromise), + (mResult)) NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DOMRequest) NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) diff --git a/dom/base/Pose.cpp b/dom/base/Pose.cpp index 6107984d56ae..837555b96b0c 100644 --- a/dom/base/Pose.cpp +++ b/dom/base/Pose.cpp @@ -12,32 +12,10 @@ namespace mozilla::dom { -NS_IMPL_CYCLE_COLLECTION_CLASS(Pose) - -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(Pose) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mParent) - NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER - tmp->mPosition = nullptr; - tmp->mLinearVelocity = nullptr; - tmp->mLinearAcceleration = nullptr; - tmp->mOrientation = nullptr; - tmp->mAngularVelocity = nullptr; - tmp->mAngularAcceleration = nullptr; -NS_IMPL_CYCLE_COLLECTION_UNLINK_END - -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(Pose) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mParent) -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END - -NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(Pose) - NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mPosition) - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mLinearVelocity) - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mLinearAcceleration) - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mOrientation) - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mAngularVelocity) - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mAngularAcceleration) -NS_IMPL_CYCLE_COLLECTION_TRACE_END +NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_WITH_JS_MEMBERS( + Pose, (mParent), + (mPosition, mLinearVelocity, mLinearAcceleration, mOrientation, + mAngularVelocity, mAngularAcceleration)) NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(Pose, AddRef) NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(Pose, Release) diff --git a/dom/base/nsGlobalWindowInner.cpp b/dom/base/nsGlobalWindowInner.cpp index 392b382571d3..b55758408e6e 100644 --- a/dom/base/nsGlobalWindowInner.cpp +++ b/dom/base/nsGlobalWindowInner.cpp @@ -569,21 +569,12 @@ class IdleRequestExecutor final : public nsIRunnable, Maybe mDelayedExecutorHandle; }; -NS_IMPL_CYCLE_COLLECTION_CLASS(IdleRequestExecutor) +NS_IMPL_CYCLE_COLLECTION(IdleRequestExecutor, mWindow, + mDelayedExecutorDispatcher) NS_IMPL_CYCLE_COLLECTING_ADDREF(IdleRequestExecutor) NS_IMPL_CYCLE_COLLECTING_RELEASE(IdleRequestExecutor) -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(IdleRequestExecutor) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mWindow) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mDelayedExecutorDispatcher) -NS_IMPL_CYCLE_COLLECTION_UNLINK_END - -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(IdleRequestExecutor) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mWindow) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mDelayedExecutorDispatcher) -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END - NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(IdleRequestExecutor) NS_INTERFACE_MAP_ENTRY(nsIRunnable) NS_INTERFACE_MAP_ENTRY(nsICancelableRunnable) diff --git a/dom/events/EventListenerService.cpp b/dom/events/EventListenerService.cpp index e99aa5eca160..9621e43a752d 100644 --- a/dom/events/EventListenerService.cpp +++ b/dom/events/EventListenerService.cpp @@ -97,22 +97,9 @@ EventListenerInfo::EventListenerInfo( EventListenerInfo::~EventListenerInfo() { DropJSObjects(this); } -NS_IMPL_CYCLE_COLLECTION_CLASS(EventListenerInfo) - -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(EventListenerInfo) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mListenerManager) -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END - -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(EventListenerInfo) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mListenerManager) - tmp->mScriptedListener = nullptr; - tmp->mScriptedListenerGlobal = nullptr; -NS_IMPL_CYCLE_COLLECTION_UNLINK_END - -NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(EventListenerInfo) - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mScriptedListener) - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mScriptedListenerGlobal) -NS_IMPL_CYCLE_COLLECTION_TRACE_END +NS_IMPL_CYCLE_COLLECTION_WITH_JS_MEMBERS(EventListenerInfo, (mListenerManager), + (mScriptedListener, + mScriptedListenerGlobal)) NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(EventListenerInfo) NS_INTERFACE_MAP_ENTRY(nsIEventListenerInfo) diff --git a/dom/gamepad/GamepadTouch.cpp b/dom/gamepad/GamepadTouch.cpp index f0ed33ef80e0..d2fe0de2c04f 100644 --- a/dom/gamepad/GamepadTouch.cpp +++ b/dom/gamepad/GamepadTouch.cpp @@ -13,24 +13,9 @@ namespace mozilla::dom { -NS_IMPL_CYCLE_COLLECTION_CLASS(GamepadTouch) - -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(GamepadTouch) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mParent) - NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER - tmp->mPosition = nullptr; - tmp->mSurfaceDimensions = nullptr; -NS_IMPL_CYCLE_COLLECTION_UNLINK_END - -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(GamepadTouch) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mParent) -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END - -NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(GamepadTouch) - NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mPosition) - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mSurfaceDimensions) -NS_IMPL_CYCLE_COLLECTION_TRACE_END +NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_WITH_JS_MEMBERS(GamepadTouch, (mParent), + (mPosition, + mSurfaceDimensions)) NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(GamepadTouch, AddRef) NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(GamepadTouch, Release) diff --git a/dom/midi/MIDIMessageEvent.cpp b/dom/midi/MIDIMessageEvent.cpp index 76af8f634556..f539bf7c89a0 100644 --- a/dom/midi/MIDIMessageEvent.cpp +++ b/dom/midi/MIDIMessageEvent.cpp @@ -18,22 +18,12 @@ namespace mozilla::dom { -NS_IMPL_CYCLE_COLLECTION_CLASS(MIDIMessageEvent) +NS_IMPL_CYCLE_COLLECTION_INHERITED_WITH_JS_MEMBERS(MIDIMessageEvent, Event, (), + (mData)) NS_IMPL_ADDREF_INHERITED(MIDIMessageEvent, Event) NS_IMPL_RELEASE_INHERITED(MIDIMessageEvent, Event) -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(MIDIMessageEvent, Event) -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END - -NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN_INHERITED(MIDIMessageEvent, Event) - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mData) -NS_IMPL_CYCLE_COLLECTION_TRACE_END - -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(MIDIMessageEvent, Event) - tmp->mData = nullptr; -NS_IMPL_CYCLE_COLLECTION_UNLINK_END - NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(MIDIMessageEvent) NS_INTERFACE_MAP_END_INHERITING(Event) diff --git a/dom/push/PushSubscriptionOptions.cpp b/dom/push/PushSubscriptionOptions.cpp index 20304da8849f..1de3d96a2ee5 100644 --- a/dom/push/PushSubscriptionOptions.cpp +++ b/dom/push/PushSubscriptionOptions.cpp @@ -12,6 +12,7 @@ #include "mozilla/HoldDropJSObjects.h" #include "mozilla/dom/PushUtil.h" #include "nsIGlobalObject.h" +#include "nsWrapperCache.h" namespace mozilla::dom { @@ -30,19 +31,9 @@ PushSubscriptionOptions::~PushSubscriptionOptions() { mozilla::DropJSObjects(this); } -NS_IMPL_CYCLE_COLLECTION_CLASS(PushSubscriptionOptions) -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(PushSubscriptionOptions) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mGlobal) - NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER - tmp->mAppServerKey = nullptr; -NS_IMPL_CYCLE_COLLECTION_UNLINK_END -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(PushSubscriptionOptions) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mGlobal) -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END -NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(PushSubscriptionOptions) - NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mAppServerKey) -NS_IMPL_CYCLE_COLLECTION_TRACE_END +NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_WITH_JS_MEMBERS(PushSubscriptionOptions, + (mGlobal), + (mAppServerKey)) NS_IMPL_CYCLE_COLLECTING_ADDREF(PushSubscriptionOptions) NS_IMPL_CYCLE_COLLECTING_RELEASE(PushSubscriptionOptions) diff --git a/dom/streams/ReadableStreamPipeTo.cpp b/dom/streams/ReadableStreamPipeTo.cpp index 81af102db4a8..24cb1d7f08ff 100644 --- a/dom/streams/ReadableStreamPipeTo.cpp +++ b/dom/streams/ReadableStreamPipeTo.cpp @@ -646,16 +646,7 @@ struct PipeToReadRequest : public ReadRequest { virtual ~PipeToReadRequest() = default; }; -NS_IMPL_CYCLE_COLLECTION_CLASS(PipeToReadRequest) - -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(PipeToReadRequest, ReadRequest) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mPipeToPump) -NS_IMPL_CYCLE_COLLECTION_UNLINK_END - -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(PipeToReadRequest, - ReadRequest) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mPipeToPump) -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END +NS_IMPL_CYCLE_COLLECTION_INHERITED(PipeToReadRequest, ReadRequest, mPipeToPump) NS_IMPL_ADDREF_INHERITED(PipeToReadRequest, ReadRequest) NS_IMPL_RELEASE_INHERITED(PipeToReadRequest, ReadRequest) diff --git a/dom/vr/VRDisplay.cpp b/dom/vr/VRDisplay.cpp index 9f2088dc272d..28f4852abd5c 100644 --- a/dom/vr/VRDisplay.cpp +++ b/dom/vr/VRDisplay.cpp @@ -124,22 +124,9 @@ JSObject* VRFieldOfView::WrapObject(JSContext* aCx, return VRFieldOfView_Binding::Wrap(aCx, this, aGivenProto); } -NS_IMPL_CYCLE_COLLECTION_CLASS(VREyeParameters) - -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(VREyeParameters) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mParent, mFOV) - NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER - tmp->mOffset = nullptr; -NS_IMPL_CYCLE_COLLECTION_UNLINK_END - -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(VREyeParameters) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mParent, mFOV) -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END - -NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(VREyeParameters) - NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mOffset) -NS_IMPL_CYCLE_COLLECTION_TRACE_END +NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_WITH_JS_MEMBERS(VREyeParameters, + (mParent, mFOV), + (mOffset)) NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(VREyeParameters, AddRef) NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(VREyeParameters, Release) diff --git a/dom/vr/XRRigidTransform.cpp b/dom/vr/XRRigidTransform.cpp index 4aa3ecf53928..ce6ee583dff3 100644 --- a/dom/vr/XRRigidTransform.cpp +++ b/dom/vr/XRRigidTransform.cpp @@ -9,25 +9,14 @@ #include "mozilla/dom/Pose.h" #include "mozilla/dom/DOMPointBinding.h" #include "mozilla/HoldDropJSObjects.h" +#include "nsWrapperCache.h" namespace mozilla::dom { -NS_IMPL_CYCLE_COLLECTION_CLASS(XRRigidTransform) - -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(XRRigidTransform) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mParent, mPosition, mOrientation, mInverse) - NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER - tmp->mMatrixArray = nullptr; -NS_IMPL_CYCLE_COLLECTION_UNLINK_END - -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(XRRigidTransform) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mParent, mPosition, mOrientation, mInverse) -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END - -NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(XRRigidTransform) - NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mMatrixArray) -NS_IMPL_CYCLE_COLLECTION_TRACE_END +NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_WITH_JS_MEMBERS(XRRigidTransform, + (mParent, mPosition, + mOrientation, mInverse), + (mMatrixArray)) NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(XRRigidTransform, AddRef) NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(XRRigidTransform, Release) diff --git a/dom/vr/XRView.cpp b/dom/vr/XRView.cpp index 1c17edcb9aa0..93ec84f88cdf 100644 --- a/dom/vr/XRView.cpp +++ b/dom/vr/XRView.cpp @@ -9,25 +9,13 @@ #include "mozilla/HoldDropJSObjects.h" #include "mozilla/dom/XRRigidTransform.h" #include "mozilla/dom/Pose.h" +#include "nsWrapperCache.h" namespace mozilla::dom { -NS_IMPL_CYCLE_COLLECTION_CLASS(XRView) - -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(XRView) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mParent, mTransform) - NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER - tmp->mJSProjectionMatrix = nullptr; -NS_IMPL_CYCLE_COLLECTION_UNLINK_END - -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(XRView) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mParent, mTransform) -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END - -NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(XRView) - NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mJSProjectionMatrix) -NS_IMPL_CYCLE_COLLECTION_TRACE_END +NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_WITH_JS_MEMBERS(XRView, + (mParent, mTransform), + (mJSProjectionMatrix)) NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(XRView, AddRef) NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(XRView, Release) diff --git a/dom/webauthn/AuthenticatorResponse.cpp b/dom/webauthn/AuthenticatorResponse.cpp index 4a21608b7579..d12dc0150523 100644 --- a/dom/webauthn/AuthenticatorResponse.cpp +++ b/dom/webauthn/AuthenticatorResponse.cpp @@ -7,24 +7,12 @@ #include "mozilla/dom/AuthenticatorResponse.h" #include "nsPIDOMWindow.h" +#include "nsWrapperCache.h" namespace mozilla::dom { -NS_IMPL_CYCLE_COLLECTION_CLASS(AuthenticatorResponse) -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(AuthenticatorResponse) - NS_IMPL_CYCLE_COLLECTION_UNLINK(mParent) - NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER - tmp->mClientDataJSONCachedObj = nullptr; -NS_IMPL_CYCLE_COLLECTION_UNLINK_END - -NS_IMPL_CYCLE_COLLECTION_TRACE_BEGIN(AuthenticatorResponse) - NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER - NS_IMPL_CYCLE_COLLECTION_TRACE_JS_MEMBER_CALLBACK(mClientDataJSONCachedObj) -NS_IMPL_CYCLE_COLLECTION_TRACE_END - -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(AuthenticatorResponse) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mParent) -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END +NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_WITH_JS_MEMBERS( + AuthenticatorResponse, (mParent), (mClientDataJSONCachedObj)) NS_IMPL_CYCLE_COLLECTING_ADDREF(AuthenticatorResponse) NS_IMPL_CYCLE_COLLECTING_RELEASE(AuthenticatorResponse)