diff options
| author | Jacob Rosenthal <[email protected]> | 2021-11-03 18:56:02 -0700 |
|---|---|---|
| committer | Jacob Rosenthal <[email protected]> | 2021-11-03 18:56:02 -0700 |
| commit | 03f2c593d6b919716d44478087f0dec6d4648382 (patch) | |
| tree | b52cdb20d8e87ad6a17f356b34a9ed27eba32655 | |
| parent | 64e1426b54c41a5b622c666cd7763bb07f73a2c4 (diff) | |
fix slice_in_ram for arbitrary size types
| -rw-r--r-- | embassy-nrf/src/util.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/embassy-nrf/src/util.rs b/embassy-nrf/src/util.rs index d17ec5032..2fd0bc5a8 100644 --- a/embassy-nrf/src/util.rs +++ b/embassy-nrf/src/util.rs | |||
| @@ -4,13 +4,13 @@ const SRAM_UPPER: usize = 0x3000_0000; | |||
| 4 | /// Does this slice reside entirely within RAM? | 4 | /// Does this slice reside entirely within RAM? |
| 5 | pub(crate) fn slice_in_ram<T>(slice: &[T]) -> bool { | 5 | pub(crate) fn slice_in_ram<T>(slice: &[T]) -> bool { |
| 6 | let ptr = slice.as_ptr() as usize; | 6 | let ptr = slice.as_ptr() as usize; |
| 7 | ptr >= SRAM_LOWER && (ptr + slice.len()) < SRAM_UPPER | 7 | ptr >= SRAM_LOWER && (ptr + slice.len() * core::mem::size_of::<T>()) < SRAM_UPPER |
| 8 | } | 8 | } |
| 9 | 9 | ||
| 10 | /// Return an error if slice is not in RAM. | 10 | /// Return an error if slice is not in RAM. |
| 11 | #[cfg(not(feature = "nrf51"))] | 11 | #[cfg(not(feature = "nrf51"))] |
| 12 | pub(crate) fn slice_in_ram_or<T, E>(slice: &[T], err: E) -> Result<(), E> { | 12 | pub(crate) fn slice_in_ram_or<T, E>(slice: &[T], err: E) -> Result<(), E> { |
| 13 | if slice.len() == 0 || slice_in_ram(slice) { | 13 | if slice.is_empty() || slice_in_ram(slice) { |
| 14 | Ok(()) | 14 | Ok(()) |
| 15 | } else { | 15 | } else { |
| 16 | Err(err) | 16 | Err(err) |
