Bug 1507313 part 3: Convert PresShell::mDelayedEvents into an array of UniquePtr (rather than nsAutoPtr). r=TYLin

Differential Revision: https://phabricator.services.mozilla.com/D11947

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Daniel Holbert 2018-11-15 07:40:52 +00:00
parent d7065b05db
commit 9626dd9523
2 changed files with 6 additions and 11 deletions

View File

@ -6962,10 +6962,8 @@ PresShell::HandleEvent(nsIFrame* aFrame,
if (aEvent->mMessage == eKeyDown) {
mNoDelayedKeyEvents = true;
} else if (!mNoDelayedKeyEvents) {
DelayedEvent* event = new DelayedKeyEvent(aEvent->AsKeyboardEvent());
if (!mDelayedEvents.AppendElement(event)) {
delete event;
}
auto event = MakeUnique<DelayedKeyEvent>(aEvent->AsKeyboardEvent());
mDelayedEvents.AppendElement(std::move(event));
}
aEvent->mFlags.mIsSuppressedOrDelayed = true;
return NS_OK;
@ -7184,10 +7182,8 @@ PresShell::HandleEvent(nsIFrame* aFrame,
// contextmenu is triggered after right mouseup on Windows and right
// mousedown on other platforms.
aEvent->mMessage == eContextMenu)) {
DelayedEvent* event = new DelayedMouseEvent(aEvent->AsMouseEvent());
if (!mDelayedEvents.AppendElement(event)) {
delete event;
}
auto event = MakeUnique<DelayedMouseEvent>(aEvent->AsMouseEvent());
mDelayedEvents.AppendElement(std::move(event));
}
return NS_OK;
}
@ -8724,7 +8720,7 @@ PresShell::FireOrClearDelayedEvents(bool aFireEvents)
nsCOMPtr<nsIDocument> doc = mDocument;
while (!mIsDestroying && mDelayedEvents.Length() &&
!doc->EventHandlingSuppressed()) {
nsAutoPtr<DelayedEvent> ev(mDelayedEvents[0].forget());
UniquePtr<DelayedEvent> ev = std::move(mDelayedEvents[0]);
mDelayedEvents.RemoveElementAt(0);
if (ev->IsKeyPressEvent() && mIsLastKeyDownCanceled) {
continue;

View File

@ -16,7 +16,6 @@
#include "mozilla/MemoryReporting.h"
#include "mozilla/ServoStyleSet.h"
#include "mozilla/UniquePtr.h"
#include "nsAutoPtr.h"
#include "nsContentUtils.h" // For AddScriptBlocker().
#include "nsCRT.h"
#include "nsIObserver.h"
@ -785,7 +784,7 @@ private:
// we finish reflowing mCurrentReflowRoot.
nsTHashtable<nsPtrHashKey<nsIFrame> > mFramesToDirty;
nsTArray<nsAutoPtr<DelayedEvent> > mDelayedEvents;
nsTArray<UniquePtr<DelayedEvent>> mDelayedEvents;
private:
nsRevocableEventPtr<nsSynthMouseMoveEvent> mSynthMouseMoveEvent;
nsCOMPtr<nsIContent> mLastAnchorScrolledTo;