Bug 1333927 Make ScrollAreaEvent::mClientArea cycle collected r?smaug
ScrollAreaEvent extends a cycle collected class UIEvent. It also contains a cycle collected DOMRect member field.
MozReview-Commit-ID: D1xsod4es0r
--- a/dom/events/ScrollAreaEvent.cpp
+++ b/dom/events/ScrollAreaEvent.cpp
@@ -17,20 +17,23 @@ ScrollAreaEvent::ScrollAreaEvent(EventTa
nsPresContext* aPresContext,
InternalScrollAreaEvent* aEvent)
: UIEvent(aOwner, aPresContext, aEvent)
, mClientArea(new DOMRect(nullptr))
{
mClientArea->SetLayoutRect(aEvent ? aEvent->mArea : nsRect());
}
+NS_IMPL_CYCLE_COLLECTION_INHERITED(ScrollAreaEvent, UIEvent,
+ mClientArea)
+
NS_IMPL_ADDREF_INHERITED(ScrollAreaEvent, UIEvent)
NS_IMPL_RELEASE_INHERITED(ScrollAreaEvent, UIEvent)
-NS_INTERFACE_MAP_BEGIN(ScrollAreaEvent)
+NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(ScrollAreaEvent)
NS_INTERFACE_MAP_END_INHERITING(UIEvent)
void
ScrollAreaEvent::InitScrollAreaEvent(const nsAString& aEventType,
bool aCanBubble,
bool aCancelable,
nsGlobalWindow* aView,
int32_t aDetail,
--- a/dom/events/ScrollAreaEvent.h
+++ b/dom/events/ScrollAreaEvent.h
@@ -19,17 +19,17 @@ namespace dom {
class ScrollAreaEvent : public UIEvent
{
public:
ScrollAreaEvent(EventTarget* aOwner,
nsPresContext* aPresContext,
InternalScrollAreaEvent* aEvent);
NS_DECL_ISUPPORTS_INHERITED
-
+ NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(ScrollAreaEvent, UIEvent)
NS_FORWARD_NSIDOMUIEVENT(UIEvent::)
NS_FORWARD_TO_EVENT_NO_SERIALIZATION_NO_DUPLICATION
NS_IMETHOD DuplicatePrivateData() override
{
return Event::DuplicatePrivateData();
}
NS_IMETHOD_(void) Serialize(IPC::Message* aMsg, bool aSerializeInterfaceType) override;