Skip to content

Commit

Permalink
Merge pull request #251 from plaes/addr-of-macro
Browse files Browse the repository at this point in the history
Use core::ptr::addr_of! macro instead of static mutable
  • Loading branch information
Dirbaio authored Apr 30, 2024
2 parents c2a40e3 + c69baa1 commit a6c5b15
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 9 deletions.
13 changes: 5 additions & 8 deletions nrf-softdevice/src/ble/peripheral.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//! Bluetooth Peripheral operations. Peripheral devices emit advertisements, and optionally accept connections from Central devices.

use core::{mem, ptr};
use core::ptr;

use crate::ble::*;
use crate::util::{get_union_field, OnDrop, Portal};
Expand Down Expand Up @@ -220,16 +220,12 @@ static mut ADV_HANDLE: u8 = raw::BLE_GAP_ADV_SET_HANDLE_NOT_SET as u8;
pub(crate) static ADV_PORTAL: Portal<*const raw::ble_evt_t> = Portal::new();

fn start_adv(adv: RawAdvertisement<'_>, config: &Config) -> Result<(), AdvertiseError> {
let mut adv_params: raw::ble_gap_adv_params_t = unsafe { mem::zeroed() };
let mut adv_params: raw::ble_gap_adv_params_t = unsafe { core::mem::zeroed() };

adv_params.properties.type_ = adv.kind;
adv_params.properties.set_anonymous(u8::from(adv.anonymous));

adv_params.p_peer_addr = adv
.peer
.as_ref()
.map(|x| x.as_raw() as *const _)
.unwrap_or(core::ptr::null());
adv_params.p_peer_addr = adv.peer.as_ref().map(|x| x.as_raw() as *const _).unwrap_or(ptr::null());
adv_params.primary_phy = config.primary_phy as u8;
adv_params.secondary_phy = config.secondary_phy as u8;
adv_params.duration = config.timeout.map(|t| t.max(1)).unwrap_or(0);
Expand Down Expand Up @@ -259,7 +255,8 @@ fn start_adv(adv: RawAdvertisement<'_>, config: &Config) -> Result<(), Advertise
scan_rsp_data: map_data(adv.scan_data),
};

let ret = unsafe { raw::sd_ble_gap_adv_set_configure(&mut ADV_HANDLE as _, &datas as _, &adv_params as _) };
let ret =
unsafe { raw::sd_ble_gap_adv_set_configure(ptr::addr_of!(ADV_HANDLE) as _, &datas as _, &adv_params as _) };
RawError::convert(ret).map_err(|err| {
warn!("sd_ble_gap_adv_set_configure err {:?}", err);
err
Expand Down
2 changes: 1 addition & 1 deletion nrf-softdevice/src/softdevice.rs
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ fn get_app_ram_base() -> u32 {
static mut __sdata: u32;
}

unsafe { &mut __sdata as *mut u32 as u32 }
unsafe { ptr::addr_of!(__sdata) as u32 }
}

fn cfg_set(id: u32, cfg: &raw::ble_cfg_t) {
Expand Down

0 comments on commit a6c5b15

Please sign in to comment.