diff --git a/dom/ipc/CoalescedInputData.h b/dom/ipc/CoalescedInputData.h index e86d31a2364d..51b2f34a4891 100644 --- a/dom/ipc/CoalescedInputData.h +++ b/dom/ipc/CoalescedInputData.h @@ -29,11 +29,6 @@ public: { } - void Reset() - { - mCoalescedInputEvent = nullptr; - } - bool IsEmpty() { return !mCoalescedInputEvent; @@ -43,9 +38,9 @@ public: const ScrollableLayerGuid& aGuid, const uint64_t& aInputBlockId); - const InputEventType* GetCoalescedEvent() + UniquePtr TakeCoalescedEvent() { - return mCoalescedInputEvent.get(); + return Move(mCoalescedInputEvent); } ScrollableLayerGuid GetScrollableLayerGuid() diff --git a/dom/ipc/TabChild.cpp b/dom/ipc/TabChild.cpp index 685e1ab0e154..1323526bee19 100644 --- a/dom/ipc/TabChild.cpp +++ b/dom/ipc/TabChild.cpp @@ -1601,14 +1601,13 @@ TabChild::MaybeDispatchCoalescedMouseMoveEvents() if (!data || data->IsEmpty()) { continue; } - const WidgetMouseEvent* event = data->GetCoalescedEvent(); + UniquePtr event = data->TakeCoalescedEvent(); MOZ_ASSERT(event); // Dispatch the coalesced mousemove event. Using RecvRealMouseButtonEvent to // bypass the coalesce handling in RecvRealMouseMoveEvent. RecvRealMouseButtonEvent(*event, data->GetScrollableLayerGuid(), data->GetInputBlockId()); - data->Reset(); } if (mCoalescedMouseEventFlusher) { mCoalescedMouseEventFlusher->RemoveObserver(); @@ -1779,13 +1778,12 @@ TabChild::MaybeDispatchCoalescedWheelEvent() if (mCoalescedWheelData.IsEmpty()) { return; } - const WidgetWheelEvent* wheelEvent = - mCoalescedWheelData.GetCoalescedEvent(); + UniquePtr wheelEvent = + mCoalescedWheelData.TakeCoalescedEvent(); MOZ_ASSERT(wheelEvent); DispatchWheelEvent(*wheelEvent, mCoalescedWheelData.GetScrollableLayerGuid(), mCoalescedWheelData.GetInputBlockId()); - mCoalescedWheelData.Reset(); } void