Commit 75585a5
authored
Guard against integer overflow (swiftlang#1703)
In a recent change we changed to use integer math for better performance. However, this approach doesn't work if the date offset of the input Date cannot be represented by a Int, which would trigger a swift runtime error.
Fix this by checking if the offset is representable as an Int, and fallback to the previous implementation with floating point math if it isn't.
1686006851 parent 5d12358 commit 75585a5
2 files changed
Lines changed: 38 additions & 9 deletions
File tree
- Sources/FoundationEssentials/Calendar
- Tests/FoundationEssentialsTests
Lines changed: 25 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1994 | 1994 | | |
1995 | 1995 | | |
1996 | 1996 | | |
1997 | | - | |
1998 | | - | |
1999 | | - | |
2000 | 1997 | | |
2001 | 1998 | | |
2002 | 1999 | | |
| |||
2012 | 2009 | | |
2013 | 2010 | | |
2014 | 2011 | | |
| 2012 | + | |
2015 | 2013 | | |
2016 | | - | |
2017 | | - | |
2018 | | - | |
2019 | | - | |
2020 | | - | |
2021 | | - | |
| 2014 | + | |
| 2015 | + | |
| 2016 | + | |
| 2017 | + | |
| 2018 | + | |
| 2019 | + | |
| 2020 | + | |
| 2021 | + | |
| 2022 | + | |
| 2023 | + | |
| 2024 | + | |
| 2025 | + | |
| 2026 | + | |
| 2027 | + | |
| 2028 | + | |
| 2029 | + | |
| 2030 | + | |
| 2031 | + | |
| 2032 | + | |
| 2033 | + | |
| 2034 | + | |
| 2035 | + | |
| 2036 | + | |
2022 | 2037 | | |
2023 | 2038 | | |
2024 | 2039 | | |
| |||
2041 | 2056 | | |
2042 | 2057 | | |
2043 | 2058 | | |
| 2059 | + | |
2044 | 2060 | | |
2045 | 2061 | | |
2046 | 2062 | | |
| |||
Lines changed: 13 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
583 | 583 | | |
584 | 584 | | |
585 | 585 | | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
586 | 599 | | |
587 | 600 | | |
588 | 601 | | |
| |||
0 commit comments