This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH 7/9] mktime: simplify computation of average
- From: Paul Eggert <eggert at cs dot ucla dot edu>
- To: GNU C Library <libc-alpha at sourceware dot org>
- Date: Wed, 23 May 2012 10:06:11 -0700
- Subject: [PATCH 7/9] 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 68dfdad..42d9dfd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -118,6 +118,10 @@
* time/mktime.c (compile-command): Add "-I.".
+ 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 4027cf7..0649f04 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