mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
mktime: simplify computation of average
* time/mktime.c (ranged_convert): Use new time_t_avg function instead of rolling our own (probably-slower) code.
This commit is contained in:
@ -1,5 +1,9 @@
|
|||||||
2012-05-23 Paul Eggert <eggert@cs.ucla.edu>
|
2012-05-23 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
|
mktime: do not assume signed right shift propagates sign bit
|
||||||
* time/mktime.c (isdst_differ): New static function.
|
* time/mktime.c (isdst_differ): New static function.
|
||||||
(__mktime_internal): No need to normalize tm_isdst now.
|
(__mktime_internal): No need to normalize tm_isdst now.
|
||||||
|
@ -319,9 +319,7 @@ ranged_convert (struct tm *(*convert) (const time_t *, struct tm *),
|
|||||||
they differ by 1. */
|
they differ by 1. */
|
||||||
while (bad != ok + (bad < 0 ? -1 : 1))
|
while (bad != ok + (bad < 0 ? -1 : 1))
|
||||||
{
|
{
|
||||||
time_t mid = *t = (bad < 0
|
time_t mid = *t = time_t_avg (ok, bad);
|
||||||
? bad + ((ok - bad) >> 1)
|
|
||||||
: ok + ((bad - ok) >> 1));
|
|
||||||
r = convert (t, tp);
|
r = convert (t, tp);
|
||||||
if (r)
|
if (r)
|
||||||
ok = mid;
|
ok = mid;
|
||||||
|
Reference in New Issue
Block a user