]> granicus.if.org Git - php/commitdiff
Use thread-safe versions of localtime and gmtime
authorJouni Ahto <jah@php.net>
Sat, 27 Nov 1999 20:51:17 +0000 (20:51 +0000)
committerJouni Ahto <jah@php.net>
Sat, 27 Nov 1999 20:51:17 +0000 (20:51 +0000)
ext/dbase/dbf_misc.c
ext/standard/parsedate.y

index 84573e47a4457981b01334ad6bdc85d8100ea24e..fedb0d0f9c72374c6a7f520cbff9fcb085f8150f 100644 (file)
@@ -151,11 +151,11 @@ int db_date_day(char *cp)
 
 char *db_cur_date(char *cp)
 {
-       struct tm *ctm;
+       struct tm *ctm, tmbuf;
        time_t    c_time;
 
        c_time = time((time_t *)NULL);
-       ctm = localtime(&c_time);
+       ctm = localtime_r(&c_time, &tmbuf);
        if (cp == NULL)
                cp = (char *)malloc(9);
 
index 513ac73ea648ef8277f04b1dd2ce56e737468529..17b21b3ecd2d180a4ea18bd802273072f8d49e68 100644 (file)
@@ -533,13 +533,13 @@ int GetTimeInfo(TIMEINFO *Now)
 {
     static time_t      NextHour;
     static long                LastTzone;
-    struct tm          *tm;
+    struct tm          *tm, tmbuf;
     int                        secondsUntilNextHour;
 #if    defined(HAVE_GETTIMEOFDAY)
     struct timeval     tv;
 #endif /* defined(HAVE_GETTIMEOFDAY) */
 #if    !defined(HAVE_TM_GMTOFF)
-    struct tm          local;
+    struct tm          local, tmbuf;
     struct tm          gmt;
 #endif /* !defined(HAVE_TM_GMTOFF) */
 
@@ -557,13 +557,13 @@ int GetTimeInfo(TIMEINFO *Now)
 
     /* Now get the timezone if the last time < HH:00:00 <= now for some HH.  */
     if (NextHour <= Now->time) {
-       if ((tm = localtime(&Now->time)) == NULL)
+       if ((tm = localtime_r(&Now->time, &tmbuf)) == NULL)
            return -1;
        secondsUntilNextHour = 60 * (60 - tm->tm_min) - tm->tm_sec;
 #if    !defined(HAVE_TM_GMTOFF)
        /* To get the timezone, compare localtime with GMT. */
        local = *tm;
-       if ((tm = gmtime(&Now->time)) == NULL)
+       if ((tm = gmtime_r(&Now->time, &tmbuf)) == NULL)
            return -1;
        gmt = *tm;
 
@@ -698,11 +698,11 @@ RelativeMonth(Start, RelMonth)
     time_t     Start;
     time_t     RelMonth;
 {
-    struct tm  *tm;
+    struct tm  *tm, tmbuf;
     time_t     Month;
     time_t     Year;
 
-    tm = localtime(&Start);
+    tm = localtime_r(&Start, &tmbuf);
     Month = 12 * tm->tm_year + tm->tm_mon + RelMonth;
     Year = Month / 12;
     Year += 1900;
@@ -868,7 +868,7 @@ static int date_lex(void)
 time_t parsedate(char *p, TIMEINFO *now)
 {
     extern int         date_parse();
-    struct tm          *tm;
+    struct tm          *tm, tmbuf;
     TIMEINFO           ti;
     time_t             Start;
 
@@ -878,7 +878,7 @@ time_t parsedate(char *p, TIMEINFO *now)
                (void)GetTimeInfo(&ti);
     }
 
-    tm = localtime(&now->time);
+    tm = localtime_r(&now->time, &tmbuf);
     yyYear = tm->tm_year + 1900;
     yyMonth = tm->tm_mon + 1;
     yyDay = tm->tm_mday;