summaryrefslogtreecommitdiff
path: root/src/timers.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/timers.cpp')
-rw-r--r--src/timers.cpp28
1 files changed, 4 insertions, 24 deletions
diff --git a/src/timers.cpp b/src/timers.cpp
index be4289a7c..cd7dbd1fd 100644
--- a/src/timers.cpp
+++ b/src/timers.cpp
@@ -34,6 +34,7 @@ Timer::Timer(long time_from_now, time_t now, bool repeating)
*/
Timer::~Timer()
{
+ TimerManager::DelTimer(this);
}
/** Set the trigger time to a new value
@@ -94,39 +95,18 @@ void TimerManager::DelTimer(Timer *T)
if (i != Timers.end())
{
- delete (*i);
Timers.erase(i);
}
}
-/** Check if something is a timer
- * @param T A pointer
- * @return true or false
- */
-bool TimerManager::IsTimer(Timer *T)
-{
- std::vector<Timer *>::iterator i = std::find(Timers.begin(), Timers.end(), T);
-
- if (i != Timers.end())
- {
- return true;
- }
-
- return false;
-}
-
/** Tick all pending timers
* @param ctime The current time
*/
void TimerManager::TickTimers(time_t ctime)
{
- std::vector<Timer *>::iterator i;
- Timer *t;
-
- while ((Timers.size()) && (ctime > (*Timers.begin())->GetTimer()))
+ while (Timers.size() && (ctime > Timers.front()->GetTimer()))
{
- i = Timers.begin();
- t = *i;
+ Timer *t = Timers.front();
t->Tick(ctime);
@@ -136,7 +116,7 @@ void TimerManager::TickTimers(time_t ctime)
sort(Timers.begin(), Timers.end(), TimerManager::TimerComparison);
}
else
- TimerManager::DelTimer(t);
+ delete t;
}
}