Loading docshell/base/nsDocShell.cpp +21 −10 Original line number Diff line number Diff line Loading @@ -2004,10 +2004,16 @@ NS_IMETHODIMP nsDocShell::RefreshURI(nsIURI *aURI, PRInt32 aDelay, PRBool aRepea refreshTimer->mDelay = aDelay; refreshTimer->mRepeat = aRepeat; if (!mRefreshURIList) { NS_ENSURE_SUCCESS(NS_NewISupportsArray(getter_AddRefs(mRefreshURIList)), NS_ERROR_FAILURE); } nsCOMPtr<nsITimer> timer = do_CreateInstance("component://netscape/timer"); NS_ENSURE_TRUE(timer, NS_ERROR_FAILURE); mRefreshURIList.AppendElement(timer); mRefreshURIList->AppendElement(timer); // owning timer ref timer->Init(refreshTimer, aDelay); return NS_OK; Loading @@ -2015,13 +2021,18 @@ NS_IMETHODIMP nsDocShell::RefreshURI(nsIURI *aURI, PRInt32 aDelay, PRBool aRepea NS_IMETHODIMP nsDocShell::CancelRefreshURITimers() { PRInt32 n = mRefreshURIList.Count(); nsCOMPtr<nsITimer> timer; if (!mRefreshURIList) return NS_OK; PRUint32 n; mRefreshURIList->Count(&n); while (n) { timer = dont_AddRef((nsITimer*)mRefreshURIList.ElementAt(0)); mRefreshURIList.RemoveElementAt(0); nsCOMPtr<nsISupports> element; mRefreshURIList->GetElementAt(0, getter_AddRefs(element)); nsCOMPtr<nsITimer> timer(do_QueryInterface(element)); mRefreshURIList->RemoveElementAt(0); // bye bye owning timer ref if (timer) timer->Cancel(); Loading docshell/base/nsDocShell.h +1 −1 Original line number Diff line number Diff line Loading @@ -252,7 +252,7 @@ protected: nsString mName; nsString mTitle; nsVoidArray mChildren; nsVoidArray mRefreshURIList; nsCOMPtr<nsISupportsArray> mRefreshURIList; nsDSURIContentListener* mContentListener; nsDSWebProgressListener* mWebProgressListener; nsDocShellInitInfo* mInitInfo; Loading Loading
docshell/base/nsDocShell.cpp +21 −10 Original line number Diff line number Diff line Loading @@ -2004,10 +2004,16 @@ NS_IMETHODIMP nsDocShell::RefreshURI(nsIURI *aURI, PRInt32 aDelay, PRBool aRepea refreshTimer->mDelay = aDelay; refreshTimer->mRepeat = aRepeat; if (!mRefreshURIList) { NS_ENSURE_SUCCESS(NS_NewISupportsArray(getter_AddRefs(mRefreshURIList)), NS_ERROR_FAILURE); } nsCOMPtr<nsITimer> timer = do_CreateInstance("component://netscape/timer"); NS_ENSURE_TRUE(timer, NS_ERROR_FAILURE); mRefreshURIList.AppendElement(timer); mRefreshURIList->AppendElement(timer); // owning timer ref timer->Init(refreshTimer, aDelay); return NS_OK; Loading @@ -2015,13 +2021,18 @@ NS_IMETHODIMP nsDocShell::RefreshURI(nsIURI *aURI, PRInt32 aDelay, PRBool aRepea NS_IMETHODIMP nsDocShell::CancelRefreshURITimers() { PRInt32 n = mRefreshURIList.Count(); nsCOMPtr<nsITimer> timer; if (!mRefreshURIList) return NS_OK; PRUint32 n; mRefreshURIList->Count(&n); while (n) { timer = dont_AddRef((nsITimer*)mRefreshURIList.ElementAt(0)); mRefreshURIList.RemoveElementAt(0); nsCOMPtr<nsISupports> element; mRefreshURIList->GetElementAt(0, getter_AddRefs(element)); nsCOMPtr<nsITimer> timer(do_QueryInterface(element)); mRefreshURIList->RemoveElementAt(0); // bye bye owning timer ref if (timer) timer->Cancel(); Loading
docshell/base/nsDocShell.h +1 −1 Original line number Diff line number Diff line Loading @@ -252,7 +252,7 @@ protected: nsString mName; nsString mTitle; nsVoidArray mChildren; nsVoidArray mRefreshURIList; nsCOMPtr<nsISupportsArray> mRefreshURIList; nsDSURIContentListener* mContentListener; nsDSWebProgressListener* mWebProgressListener; nsDocShellInitInfo* mInitInfo; Loading