Skip to content

Commit 17989cb

Browse files
committed
Eliminate range check from self.seek_relative
1 parent 6ee1a13 commit 17989cb

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

library/std/src/io/mod.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3086,14 +3086,13 @@ impl<T: Seek> Seek for Take<T> {
30863086
};
30873087
while new_position != self.position() {
30883088
if let Some(offset) = new_position.checked_signed_diff(self.position()) {
3089-
self.seek_relative(offset)?;
3089+
self.inner.seek_relative(offset)?;
3090+
self.limit = self.limit.wrapping_sub(offset as u64);
30903091
break;
30913092
}
3092-
if new_position > self.position() {
3093-
self.seek_relative(i64::MAX)?;
3094-
} else {
3095-
self.seek_relative(i64::MIN)?;
3096-
}
3093+
let offset = if new_position > self.position() { i64::MAX } else { i64::MIN };
3094+
self.inner.seek_relative(offset)?;
3095+
self.limit = self.limit.wrapping_sub(offset as u64);
30973096
}
30983097
Ok(new_position)
30993098
}

0 commit comments

Comments
 (0)