Rollup merge of #73800 - nikic:hash_i, r=kennytm
Forward Hash::write_iN to Hash::write_uN
The `Hasher::write_iN()` methods should forward to `Hasher::write_uN()`, because some Hasher implementations implement only the `write_uN()` variants, with the expectation that `write_iN()` will use the same implementation. Most notably, this is the case for the [FxHasher](5e09ea0a1c/src/lib.rs (L111)
) used by rustc itself.
This used to be the case previously, but was broken in #59982. As the PR description makes no mention of this particular change, I assume it was unintentional.
In a local test, this mitigates the regression from #73526 on at least one test-case (cc @cuviper), because we're no longer at the mercy of `FxHasher::write()` getting inlined to get reasonable performance.
This commit is contained in:
commit
95da53f7fd
@ -333,31 +333,31 @@ fn write_i8(&mut self, i: i8) {
|
||||
#[inline]
|
||||
#[stable(feature = "hasher_write", since = "1.3.0")]
|
||||
fn write_i16(&mut self, i: i16) {
|
||||
self.write(&i.to_ne_bytes())
|
||||
self.write_u16(i as u16)
|
||||
}
|
||||
/// Writes a single `i32` into this hasher.
|
||||
#[inline]
|
||||
#[stable(feature = "hasher_write", since = "1.3.0")]
|
||||
fn write_i32(&mut self, i: i32) {
|
||||
self.write(&i.to_ne_bytes())
|
||||
self.write_u32(i as u32)
|
||||
}
|
||||
/// Writes a single `i64` into this hasher.
|
||||
#[inline]
|
||||
#[stable(feature = "hasher_write", since = "1.3.0")]
|
||||
fn write_i64(&mut self, i: i64) {
|
||||
self.write(&i.to_ne_bytes())
|
||||
self.write_u64(i as u64)
|
||||
}
|
||||
/// Writes a single `i128` into this hasher.
|
||||
#[inline]
|
||||
#[stable(feature = "i128", since = "1.26.0")]
|
||||
fn write_i128(&mut self, i: i128) {
|
||||
self.write(&i.to_ne_bytes())
|
||||
self.write_u128(i as u128)
|
||||
}
|
||||
/// Writes a single `isize` into this hasher.
|
||||
#[inline]
|
||||
#[stable(feature = "hasher_write", since = "1.3.0")]
|
||||
fn write_isize(&mut self, i: isize) {
|
||||
self.write(&i.to_ne_bytes())
|
||||
self.write_usize(i as usize)
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user