mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Check more likely condition first [Feature #16335]
This commit is contained in:
parent
3324bc9d17
commit
e7ea6e078f
1 changed files with 10 additions and 1 deletions
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…
Add table
Add a link
Reference in a new issue