From e6226c1ddf56d778af13d1e8b11544f1a9afe01c Mon Sep 17 00:00:00 2001 From: Alex Moon Date: Mon, 6 Jan 2025 10:32:54 -0700 Subject: [PATCH] Fix static mut ref warnings in rust 1.83+ --- nrf-softdevice/src/ble/central.rs | 2 +- nrf-softdevice/src/ble/connection.rs | 2 +- nrf-softdevice/src/softdevice.rs | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nrf-softdevice/src/ble/central.rs b/nrf-softdevice/src/ble/central.rs index 0418aeb..a27772c 100644 --- a/nrf-softdevice/src/ble/central.rs +++ b/nrf-softdevice/src/ble/central.rs @@ -183,7 +183,7 @@ where // has been dropped and the scanning has been stopped. static mut BUF: [u8; BUF_LEN] = [0u8; BUF_LEN]; static mut BUF_DATA: raw::ble_data_t = raw::ble_data_t { - p_data: unsafe { BUF.as_mut_ptr() }, + p_data: unsafe { (&mut *(&raw mut BUF)).as_mut_ptr() }, len: BUF_LEN as u16, }; diff --git a/nrf-softdevice/src/ble/connection.rs b/nrf-softdevice/src/ble/connection.rs index fe492ec..78db407 100644 --- a/nrf-softdevice/src/ble/connection.rs +++ b/nrf-softdevice/src/ble/connection.rs @@ -825,7 +825,7 @@ pub(crate) fn with_state(index: u8, f: impl FnOnce(&mut ConnectionState) -> T fn allocate_index(f: impl FnOnce(u8, &mut ConnectionState) -> T) -> Result { unsafe { - for (i, s) in STATES.iter().enumerate() { + for (i, s) in (&*(&raw const STATES)).iter().enumerate() { let state = &mut *s.get(); if state.refcount == 0 && !state.conn_handle.is_connected() { return Ok(f(i as u8, state)); diff --git a/nrf-softdevice/src/softdevice.rs b/nrf-softdevice/src/softdevice.rs index 682f947..f9cf961 100644 --- a/nrf-softdevice/src/softdevice.rs +++ b/nrf-softdevice/src/softdevice.rs @@ -287,7 +287,7 @@ impl Softdevice { }; unsafe { - let p = SOFTDEVICE.as_mut_ptr(); + let p = (&mut *(&raw mut SOFTDEVICE)).as_mut_ptr(); p.write(sd); &mut *p } @@ -298,7 +298,7 @@ impl Softdevice { /// (a call to [`enable`] has returned without error) and no `&mut` references /// to the softdevice are active pub unsafe fn steal() -> &'static Softdevice { - &*SOFTDEVICE.as_ptr() + &*(&*(&raw const SOFTDEVICE)).as_ptr() } /// Runs the softdevice event handling loop.