[PATCH 12/17] mktime: simplify computation of average

Paul Eggert eggert@cs.ucla.edu
Fri Mar 16 10:38:00 GMT 2012


* 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 c1c6155..f1a5f9e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2012-03-16  Paul Eggert  <eggert@cs.ucla.edu>
 
+	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 4ce4200..eea4fea 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;
-- 
1.7.6.5



More information about the Libc-alpha mailing list