author | Nathan Froyd <froydnj@mozilla.com> |
Tue, 24 Jul 2012 13:50:45 -0400 | |
changeset 100320 | 14323dee4bd70ca41a6ceb30abac70a01f648b25 |
parent 100319 | d9419716db6f4dbc454b212aa817d1377038a0b1 |
child 100321 | 3e038a64e7def5fb98de2e83458fb34c5e935a12 |
push id | 23175 |
push user | emorley@mozilla.com |
push date | Wed, 25 Jul 2012 15:03:49 +0000 |
treeherder | mozilla-central@75d16b99e8ab [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | bz |
bugs | 776979 |
milestone | 17.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
dom/base/nsGlobalWindow.cpp | file | annotate | diff | comparison | revisions | |
dom/base/nsGlobalWindow.h | file | annotate | diff | comparison | revisions |
--- a/dom/base/nsGlobalWindow.cpp +++ b/dom/base/nsGlobalWindow.cpp @@ -9395,19 +9395,17 @@ nsGlobalWindow::SetTimeoutOrInterval(nsI timeout->mTimer = do_CreateInstance("@mozilla.org/timer;1", &rv); if (NS_FAILED(rv)) { return rv; } nsRefPtr<nsTimeout> copy = timeout; - rv = timeout->mTimer->InitWithFuncCallback(TimerCallback, timeout, - realInterval, - nsITimer::TYPE_ONE_SHOT); + rv = timeout->InitTimer(TimerCallback, realInterval); if (NS_FAILED(rv)) { return rv; } // The timeout is now also held in the timer's closure. copy.forget(); } else { // If we are frozen, however, then we instead simply set @@ -9632,20 +9630,17 @@ nsGlobalWindow::RescheduleTimeout(nsTime // Reschedule the OS timer. Don't bother returning any error codes if // this fails since the callers of this method don't care about them. // Make sure to cast the unsigned PR_USEC_PER_MSEC to signed // PRTime to make the division do the right thing on 64-bit // platforms whether delay is positive or negative (which we // know is always positive here, but cast anyways for // consistency). - nsresult rv = aTimeout->mTimer-> - InitWithFuncCallback(TimerCallback, aTimeout, - delay.ToMilliseconds(), - nsITimer::TYPE_ONE_SHOT); + nsresult rv = aTimeout->InitTimer(TimerCallback, delay.ToMilliseconds()); if (NS_FAILED(rv)) { NS_ERROR("Error initializing timer for DOM timeout!"); // We failed to initialize the new OS timer, this timer does // us no good here so we just cancel it (just in case) and // null out the pointer to the OS timer, this will release the // OS timer. As we continue executing the code below we'll end @@ -9977,21 +9972,17 @@ nsresult nsGlobalWindow::ResetTimersForN PR_REMOVE_LINK(timeout); // InsertTimeoutIntoList will addref |timeout| and reset // mFiringDepth. Make sure to undo that after calling it. PRUint32 firingDepth = timeout->mFiringDepth; InsertTimeoutIntoList(timeout); timeout->mFiringDepth = firingDepth; timeout->Release(); - nsresult rv = - timeout->mTimer->InitWithFuncCallback(TimerCallback, - timeout, - delay.ToMilliseconds(), - nsITimer::TYPE_ONE_SHOT); + nsresult rv = timeout->InitTimer(TimerCallback, delay.ToMilliseconds()); if (NS_FAILED(rv)) { NS_WARNING("Error resetting non background timer for DOM timeout!"); return rv; } timeout = nextTimeout; } else { @@ -10494,18 +10485,17 @@ nsGlobalWindow::ResumeTimeouts(bool aTha // Set mWhen back to the time when the timer is supposed to // fire. t->mWhen = now + t->mTimeRemaining; t->mTimer = do_CreateInstance("@mozilla.org/timer;1"); NS_ENSURE_TRUE(t->mTimer, NS_ERROR_OUT_OF_MEMORY); - rv = t->mTimer->InitWithFuncCallback(TimerCallback, t, delay, - nsITimer::TYPE_ONE_SHOT); + rv = t->InitTimer(TimerCallback, delay); if (NS_FAILED(rv)) { t->mTimer = nsnull; return rv; } // Add a reference for the new timer's closure. t->AddRef(); }
--- a/dom/base/nsGlobalWindow.h +++ b/dom/base/nsGlobalWindow.h @@ -148,16 +148,21 @@ struct nsTimeout : PRCList return static_cast<nsTimeout*>(PR_NEXT_LINK(this)); } nsTimeout* Prev() { // Note: might not actually return an nsTimeout. Use IsTimeout to check. return static_cast<nsTimeout*>(PR_PREV_LINK(this)); } + nsresult InitTimer(nsTimerCallbackFunc aFunc, PRUint64 delay) { + return mTimer->InitWithFuncCallback(aFunc, this, delay, + nsITimer::TYPE_ONE_SHOT); + } + // Window for which this timeout fires nsRefPtr<nsGlobalWindow> mWindow; // The actual timer object nsCOMPtr<nsITimer> mTimer; // True if the timeout was cleared bool mCleared;