From 94c7d826c97ec1ae6ced9f83fe1fe6cfcc235edb Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 16 Mar 2012 03:15:57 -0700 Subject: [PATCH] mktime: simplify computation of average * time/mktime.c (ranged_convert): Use new time_t_avg function instead of rolling our own (probably-slower) code. --- ChangeLog | 4 ++++ time/mktime.c | 4 +--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 066a6dafbf..e795eca881 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2012-05-23 Paul Eggert + mktime: simplify computation of average + * time/mktime.c (ranged_convert): Use new time_t_avg function + instead of rolling our own (probably-slower) code. + mktime: do not assume signed right shift propagates sign bit * time/mktime.c (isdst_differ): New static function. (__mktime_internal): No need to normalize tm_isdst now. diff --git a/time/mktime.c b/time/mktime.c index dd7daaf948..f4d9cf1528 100644 --- a/time/mktime.c +++ b/time/mktime.c @@ -319,9 +319,7 @@ ranged_convert (struct tm *(*convert) (const time_t *, struct tm *), they differ by 1. */ while (bad != ok + (bad < 0 ? -1 : 1)) { - time_t mid = *t = (bad < 0 - ? bad + ((ok - bad) >> 1) - : ok + ((bad - ok) >> 1)); + time_t mid = *t = time_t_avg (ok, bad); r = convert (t, tp); if (r) ok = mid; -- 2.43.5