From 88718e16623de67273d7fce8a3a888172351bff1 Mon Sep 17 00:00:00 2001 From: Andrew Sonin Date: Mon, 16 Oct 2023 12:35:26 +0300 Subject: [PATCH] refactor(collections/blazemap/drain): don't drop if it's unneeded --- src/collections/blazemap/iter.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/collections/blazemap/iter.rs b/src/collections/blazemap/iter.rs index 106774e..44f29c4 100644 --- a/src/collections/blazemap/iter.rs +++ b/src/collections/blazemap/iter.rs @@ -1,5 +1,6 @@ use std::fmt::{Debug, Formatter}; use std::marker::PhantomData; +use std::mem::needs_drop; use std::panic::{RefUnwindSafe, UnwindSafe}; use crate::collections::blazemap::BlazeMap; @@ -481,6 +482,9 @@ impl<'a, K, V> Drop for Drain<'a, K, V> { #[inline] fn drop(&mut self) { + if !needs_drop::() { + return; + } let iter = &mut self.inner; while iter.len != 0 { let value = unsafe { &mut *iter.inner.add(iter.current_position) };