Check more likely condition first [Feature #16335]
This commit is contained in:
parent
3324bc9d17
commit
e7ea6e078f
11
time.c
11
time.c
@ -3067,7 +3067,16 @@ time_arg(int argc, const VALUE *argv, struct vtm *vtm)
|
|||||||
static int
|
static int
|
||||||
leap_year_p(long y)
|
leap_year_p(long y)
|
||||||
{
|
{
|
||||||
return ((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0);
|
/* TODO:
|
||||||
|
* ensure about negative years in proleptic Gregorian calendar.
|
||||||
|
*/
|
||||||
|
unsigned long uy = (unsigned long)(LIKELY(y >= 0) ? y : -y);
|
||||||
|
|
||||||
|
if (LIKELY(uy % 4 != 0)) return 0;
|
||||||
|
|
||||||
|
unsigned long century = uy / 100;
|
||||||
|
if (LIKELY(uy != century * 100)) return 1;
|
||||||
|
return century % 4 == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static time_t
|
static time_t
|
||||||
|
Loading…
x
Reference in New Issue
Block a user