diff options
Diffstat (limited to 'gnu/usr.bin/perl/time64.c')
-rw-r--r-- | gnu/usr.bin/perl/time64.c | 55 |
1 files changed, 27 insertions, 28 deletions
diff --git a/gnu/usr.bin/perl/time64.c b/gnu/usr.bin/perl/time64.c index 9faab1046ee..8cbfa7c1700 100644 --- a/gnu/usr.bin/perl/time64.c +++ b/gnu/usr.bin/perl/time64.c @@ -269,41 +269,40 @@ static int S_safe_year(Year year) static void S_copy_little_tm_to_big_TM(const struct tm *src, struct TM *dest) { - if( src == NULL ) { - memset(dest, 0, sizeof(*dest)); - } - else { -# ifdef USE_TM64 - dest->tm_sec = src->tm_sec; - dest->tm_min = src->tm_min; - dest->tm_hour = src->tm_hour; - dest->tm_mday = src->tm_mday; - dest->tm_mon = src->tm_mon; - dest->tm_year = (Year)src->tm_year; - dest->tm_wday = src->tm_wday; - dest->tm_yday = src->tm_yday; - dest->tm_isdst = src->tm_isdst; - -# ifdef HAS_TM_TM_GMTOFF - dest->tm_gmtoff = src->tm_gmtoff; -# endif - -# ifdef HAS_TM_TM_ZONE - dest->tm_zone = src->tm_zone; -# endif - -# else - /* They're the same type */ - memcpy(dest, src, sizeof(*dest)); -# endif - } + assert(src); + assert(dest); +#ifdef USE_TM64 + dest->tm_sec = src->tm_sec; + dest->tm_min = src->tm_min; + dest->tm_hour = src->tm_hour; + dest->tm_mday = src->tm_mday; + dest->tm_mon = src->tm_mon; + dest->tm_year = (Year)src->tm_year; + dest->tm_wday = src->tm_wday; + dest->tm_yday = src->tm_yday; + dest->tm_isdst = src->tm_isdst; + +# ifdef HAS_TM_TM_GMTOFF + dest->tm_gmtoff = src->tm_gmtoff; +# endif + +# ifdef HAS_TM_TM_ZONE + dest->tm_zone = src->tm_zone; +# endif + +#else + /* They're the same type */ + memcpy(dest, src, sizeof(*dest)); +#endif } #ifndef HAS_LOCALTIME_R /* Simulate localtime_r() to the best of our ability */ static struct tm * S_localtime_r(const time_t *clock, struct tm *result) { +#ifdef VMS dTHX; /* in case the following is defined as Perl_my_localtime(aTHX_ ...) */ +#endif const struct tm *static_result = localtime(clock); assert(result != NULL); |