From 7b8de934e3feb3550c1419365414842642400274 Mon Sep 17 00:00:00 2001 From: vd4re Date: Wed, 8 Mar 2023 22:33:44 -0500 Subject: [PATCH] Update FIELD_OFFSET macro --- src/macros.rs | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index 92cdd96..530aeaf 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -29,17 +29,8 @@ macro_rules! EXTERN { macro_rules! FIELD_OFFSET { ($_type:ty, $field:ident$(.$cfields:ident)*) => { unsafe { - union Transmuter { - p: *const T, - r: &'static T, - i: usize, - } - #[allow(unaligned_references)] - Transmuter { - r: &(&Transmuter { - p: $crate::_core::ptr::null::<$_type>() - }.r).$field$(.$cfields)* - }.i + let base = ::core::mem::MaybeUninit::<$_type>::uninit().as_ptr(); + ::core::ptr::addr_of!((*base).$field$(.$cfields)*) as usize - base as usize } }; }