From ebdf14098b565e8c8d3482d6eb69619e4bc9ad12 Mon Sep 17 00:00:00 2001 From: "dbaron%dbaron.org" Date: Tue, 11 Feb 2003 20:26:42 +0000 Subject: [PATCH] Fix leak when handling key events on zombie pages. b=192336 r+sr=roc a=asa --- layout/base/nsPresShell.cpp | 5 ++--- layout/html/base/src/nsPresShell.cpp | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/layout/base/nsPresShell.cpp b/layout/base/nsPresShell.cpp index 9d5f9d7ad31..98281e56120 100644 --- a/layout/base/nsPresShell.cpp +++ b/layout/base/nsPresShell.cpp @@ -5989,8 +5989,8 @@ PresShell::HandleEvent(nsIView *aView, if (nsnull != frame) { PushCurrentEventInfo(nsnull, nsnull); - nsIEventStateManager *manager; - if (NS_OK == mPresContext->GetEventStateManager(&manager)) { + nsCOMPtr manager; + if (NS_OK == mPresContext->GetEventStateManager(getter_AddRefs(manager))) { //change 6-01-00 mjudge,ftang adding ime as an event that needs focused element if (NS_IS_KEY_EVENT(aEvent) || NS_IS_IME_EVENT(aEvent) || aEvent->message == NS_CONTEXTMENU_KEY) { //Key events go to the focused frame, not point based. @@ -6133,7 +6133,6 @@ PresShell::HandleEvent(nsIView *aView, if (GetCurrentEventFrame()) { rv = HandleEventInternal(aEvent, aView, NS_EVENT_FLAG_INIT, aEventStatus); } - NS_RELEASE(manager); } #ifdef NS_DEBUG if ((nsIFrameDebug::GetShowEventTargetFrameBorder()) && (GetCurrentEventFrame())) { diff --git a/layout/html/base/src/nsPresShell.cpp b/layout/html/base/src/nsPresShell.cpp index 9d5f9d7ad31..98281e56120 100644 --- a/layout/html/base/src/nsPresShell.cpp +++ b/layout/html/base/src/nsPresShell.cpp @@ -5989,8 +5989,8 @@ PresShell::HandleEvent(nsIView *aView, if (nsnull != frame) { PushCurrentEventInfo(nsnull, nsnull); - nsIEventStateManager *manager; - if (NS_OK == mPresContext->GetEventStateManager(&manager)) { + nsCOMPtr manager; + if (NS_OK == mPresContext->GetEventStateManager(getter_AddRefs(manager))) { //change 6-01-00 mjudge,ftang adding ime as an event that needs focused element if (NS_IS_KEY_EVENT(aEvent) || NS_IS_IME_EVENT(aEvent) || aEvent->message == NS_CONTEXTMENU_KEY) { //Key events go to the focused frame, not point based. @@ -6133,7 +6133,6 @@ PresShell::HandleEvent(nsIView *aView, if (GetCurrentEventFrame()) { rv = HandleEventInternal(aEvent, aView, NS_EVENT_FLAG_INIT, aEventStatus); } - NS_RELEASE(manager); } #ifdef NS_DEBUG if ((nsIFrameDebug::GetShowEventTargetFrameBorder()) && (GetCurrentEventFrame())) {