Skip to content

Commit

Permalink
Merge branch 'embassy-rs:master' into macros-feature
Browse files Browse the repository at this point in the history
  • Loading branch information
NZRosto authored Jan 8, 2025
2 parents 30d017f + 93ad991 commit 9678ea6
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 5 deletions.
2 changes: 1 addition & 1 deletion nrf-softdevice-macro/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ syn = { version = "1.0.39", features = ["full", "extra-traits"] }
quote = "1.0.7"
darling = "0.13.4"
proc-macro2 = "1.0.18"
Inflector = "0.11.4"
Inflector = { version = "0.11.4", default-features = false }
uuid = "1.2.2"

[lib]
Expand Down
2 changes: 1 addition & 1 deletion nrf-softdevice/src/ble/central.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
};

Expand Down
8 changes: 7 additions & 1 deletion nrf-softdevice/src/ble/connection.rs
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,12 @@ impl ConnectionState {
}

let ret = unsafe { raw::sd_ble_gap_disconnect(conn_handle, reason.into()) };
// This case can occur in normal operation if e.g. the connection was
// already being disconnected when disconnect() is called, so
// return as error instead of a panic.
if ret == raw::NRF_ERROR_INVALID_STATE {
return Err(DisconnectedError);
}
unwrap!(RawError::convert(ret), "sd_ble_gap_disconnect");

self.disconnecting = true;
Expand Down Expand Up @@ -825,7 +831,7 @@ pub(crate) fn with_state<T>(index: u8, f: impl FnOnce(&mut ConnectionState) -> T

fn allocate_index<T>(f: impl FnOnce(u8, &mut ConnectionState) -> T) -> Result<T, OutOfConnsError> {
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));
Expand Down
4 changes: 2 additions & 2 deletions nrf-softdevice/src/softdevice.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand All @@ -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.
Expand Down

0 comments on commit 9678ea6

Please sign in to comment.