Skip to content

Commit 6a2d515

Browse files
committed
Get rid of transmute boilerplate
1 parent f58c5ec commit 6a2d515

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/main.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use core::mem::MaybeUninit;
99

1010
use self::algo::*;
1111

12-
fn find_func(tag: [u8; 2]) -> u32 {
12+
fn find_func<T>(tag: [u8; 2]) -> T {
1313
let tag = u16::from_le_bytes(tag);
1414

1515
unsafe {
@@ -23,7 +23,7 @@ fn find_func(tag: [u8; 2]) -> u32 {
2323
let entry_addr = entry.read();
2424
entry = entry.add(1);
2525
if entry_tag == tag {
26-
return entry_addr as u32;
26+
return mem::transmute_copy(&(entry_addr as u32));
2727
}
2828
}
2929
}
@@ -42,12 +42,12 @@ impl ROMFuncs {
4242
fn load() -> Self {
4343
unsafe {
4444
ROMFuncs {
45-
connect_internal_flash: mem::transmute(find_func(*b"IF")),
46-
flash_exit_xip: mem::transmute(find_func(*b"EX")),
47-
flash_range_erase: mem::transmute(find_func(*b"RE")),
48-
flash_range_program: mem::transmute(find_func(*b"RP")),
49-
flash_flush_cache: mem::transmute(find_func(*b"FC")),
50-
flash_enter_cmd_xip: mem::transmute(find_func(*b"CX")),
45+
connect_internal_flash: find_func(*b"IF"),
46+
flash_exit_xip: find_func(*b"EX"),
47+
flash_range_erase: find_func(*b"RE"),
48+
flash_range_program: find_func(*b"RP"),
49+
flash_flush_cache: find_func(*b"FC"),
50+
flash_enter_cmd_xip: find_func(*b"CX"),
5151
}
5252
}
5353
}

0 commit comments

Comments
 (0)