RFR: 8283782: Redundant verification of year in LocalDate::ofEpochDay
Roger Riggs
rriggs at openjdk.java.net
Tue Mar 29 13:59:57 UTC 2022
On Tue, 29 Mar 2022 10:37:20 GMT, Claes Redestad <redestad at openjdk.org> wrote:
> In `LocalDate::ofEpochDays` we validate the epoch day input, then we also validate the year derived from that value. This second validation is redundant since the minimum and maximum valid epoch day line up with the first and last day of the minimum and maximum valid year, respectively. This patch replace this redundant runtime validation with a test.
>
> This reduces code complexity (increasing chance for inlining to happen) and removes a couple of branches from generated code.
test/jdk/java/time/test/java/time/TestLocalDate.java line 432:
> 430: long minYear = ChronoField.YEAR.range().getMinimum();
> 431: long maxYear = ChronoField.YEAR.range().getMinimum();
> 432: for (int i = 0; i < 500; i++) {
The 500 seems like it would burn a lot of cycles mostly redundant.
How about { 1, 2, 3, 28, 29, 30, 31, 32, 363, 364, 365, 366, 367}.
-------------
PR: https://git.openjdk.java.net/jdk/pull/8014
More information about the core-libs-dev
mailing list