Bug 1348738 - (Part 1) Refactor nsRepeatService's InitWithCallback calls into a common helper function. r?dholbert
MozReview-Commit-ID: 2uJNeSsrjSW
--- a/layout/xul/nsRepeatService.cpp
+++ b/layout/xul/nsRepeatService.cpp
@@ -48,17 +48,17 @@ void nsRepeatService::Start(Callback aCa
NS_PRECONDITION(aCallback != nullptr, "null ptr");
mCallback = aCallback;
mCallbackData = aCallbackData;
nsresult rv;
mRepeatTimer = do_CreateInstance("@mozilla.org/timer;1", &rv);
if (NS_SUCCEEDED(rv)) {
- mRepeatTimer->InitWithCallback(this, aInitialDelay, nsITimer::TYPE_ONE_SHOT);
+ InitTimerCallback(aInitialDelay);
}
}
void nsRepeatService::Stop(Callback aCallback, void* aCallbackData)
{
if (mCallback != aCallback || mCallbackData != aCallbackData)
return;
@@ -73,15 +73,21 @@ void nsRepeatService::Stop(Callback aCal
NS_IMETHODIMP nsRepeatService::Notify(nsITimer *timer)
{
// do callback
if (mCallback)
mCallback(mCallbackData);
// start timer again.
- if (mRepeatTimer) {
- mRepeatTimer->InitWithCallback(this, REPEAT_DELAY, nsITimer::TYPE_ONE_SHOT);
- }
+ InitTimerCallback(REPEAT_DELAY);
return NS_OK;
}
+void
+nsRepeatService::InitTimerCallback(uint32_t aInitialDelay)
+{
+ if (mRepeatTimer) {
+ mRepeatTimer->InitWithCallback(this, aInitialDelay, nsITimer::TYPE_ONE_SHOT);
+ }
+}
+
NS_IMPL_ISUPPORTS(nsRepeatService, nsITimerCallback)
--- a/layout/xul/nsRepeatService.h
+++ b/layout/xul/nsRepeatService.h
@@ -45,15 +45,18 @@ public:
NS_DECL_ISUPPORTS
protected:
nsRepeatService();
virtual ~nsRepeatService();
private:
+ // helper function to initialize callback function to mRepeatTimer
+ void InitTimerCallback(uint32_t aInitialDelay);
+
Callback mCallback;
void* mCallbackData;
nsCOMPtr<nsITimer> mRepeatTimer;
}; // class nsRepeatService
#endif