Skip to content

Commit dc930b0

Browse files
committed
Add #[may_dangle] when the nightly feature is enabled
1 parent 10c8a65 commit dc930b0

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ extern crate hashbrown;
7373

7474
This crate has the following Cargo features:
7575

76-
- `nightly`: Enables nightly-only features: `no_std` support and ~10% speedup from branch hint intrinsics.
76+
- `nightly`: Enables nightly-only features: `no_std` support, `#[may_dangle]` and ~10% speedup from branch hint intrinsics.
7777

7878
## License
7979

src/raw/mod.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -799,6 +799,23 @@ impl<T: Clone> Clone for RawTable<T> {
799799
}
800800
}
801801

802+
#[cfg(feature = "nightly")]
803+
unsafe impl<#[may_dangle] T> Drop for RawTable<T> {
804+
#[inline]
805+
fn drop(&mut self) {
806+
if self.bucket_mask != 0 {
807+
unsafe {
808+
if mem::needs_drop::<T>() {
809+
for item in self.iter() {
810+
item.drop();
811+
}
812+
}
813+
self.free_buckets();
814+
}
815+
}
816+
}
817+
}
818+
#[cfg(not(feature = "nightly"))]
802819
impl<T> Drop for RawTable<T> {
803820
#[inline]
804821
fn drop(&mut self) {

0 commit comments

Comments
 (0)