summaryrefslogtreecommitdiffstats
path: root/library/std/src/sys/hermit/time.rs
diff options
context:
space:
mode:
Diffstat (limited to 'library/std/src/sys/hermit/time.rs')
-rw-r--r--library/std/src/sys/hermit/time.rs12
1 files changed, 2 insertions, 10 deletions
diff --git a/library/std/src/sys/hermit/time.rs b/library/std/src/sys/hermit/time.rs
index 32ddc4346..5440d85df 100644
--- a/library/std/src/sys/hermit/time.rs
+++ b/library/std/src/sys/hermit/time.rs
@@ -40,11 +40,7 @@ impl Timespec {
}
fn checked_add_duration(&self, other: &Duration) -> Option<Timespec> {
- let mut secs = other
- .as_secs()
- .try_into() // <- target type would be `libc::time_t`
- .ok()
- .and_then(|secs| self.t.tv_sec.checked_add(secs))?;
+ let mut secs = self.tv_sec.checked_add_unsigned(other.as_secs())?;
// Nano calculations can't overflow because nanos are <1B which fit
// in a u32.
@@ -57,11 +53,7 @@ impl Timespec {
}
fn checked_sub_duration(&self, other: &Duration) -> Option<Timespec> {
- let mut secs = other
- .as_secs()
- .try_into() // <- target type would be `libc::time_t`
- .ok()
- .and_then(|secs| self.t.tv_sec.checked_sub(secs))?;
+ let mut secs = self.tv_sec.checked_sub_unsigned(other.as_secs())?;
// Similar to above, nanos can't overflow.
let mut nsec = self.t.tv_nsec as i32 - other.subsec_nanos() as i32;