From 353082ed1f6d5cec1030b97b1ecb74689ad9e8b9 Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Wed, 13 Aug 2003 20:32:21 +0000
Subject: [PATCH] Fix bug in ODTimerElapsed that resulted in massive Durations
 being checked

---
 src/odoors/ODPlat.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/src/odoors/ODPlat.c b/src/odoors/ODPlat.c
index 0420c77315..ced094b2f7 100644
--- a/src/odoors/ODPlat.c
+++ b/src/odoors/ODPlat.c
@@ -578,9 +578,7 @@ void ODTimerStart(tODTimer *pTimer, tODMilliSec Duration)
 #endif /* ODPLAT_WIN32 */
 
 #ifdef ODPLAT_NIX
-   gettimeofday(&tv,NULL);
-   pTimer->Start.tv_sec=tv.tv_sec;
-   pTimer->Start.tv_usec=tv.tv_usec;
+   gettimeofday(&(pTimer->Start),NULL);
    pTimer->Duration = Duration;
 #endif
 }
@@ -618,10 +616,8 @@ BOOL ODTimerElapsed(tODTimer *pTimer)
    /* Don't bother checking for RunKernelTimer */
    if (pTimer==&RunKernelTimer)
       return;
-   tv.tv_sec=0;
-   tv.tv_usec=1000;
    end.tv_sec=pTimer->Start.tv_sec+(pTimer->Duration / 1000);
-   end.tv_usec=(pTimer->Start.tv_usec+(pTimer->Duration*1000))%1000000;
+   end.tv_usec=((pTimer->Start.tv_usec)+((pTimer->Duration)*1000))%1000000;
    gettimeofday(&tv,NULL);
    return(end.tv_sec >= tv.tv_sec && end.tv_usec >= tv.tv_usec);
 #endif
-- 
GitLab