Bug 1333927 Make ScrollAreaEvent::mClientArea cycle collected r?smaug draft
authorMasayuki Nakano <masayuki@d-toybox.com>
Fri, 27 Jan 2017 15:57:38 +0900
changeset 467877 b60810f29f91a75fbb5706441e5710c6f879674a
parent 467876 036b10525081b299210566f382c6806a84e81331
child 467897 3844e835877c6365df8c6a3aa73e50b2c3c9aa72
push id43288
push usermasayuki@d-toybox.com
push dateMon, 30 Jan 2017 07:12:25 +0000
reviewerssmaug
bugs1333927
milestone54.0a1
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
dom/events/ScrollAreaEvent.cpp
dom/events/ScrollAreaEvent.h
--- 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;