Skip to content

Commit ddccd2b

Browse files
committed
Remove unnecessary transmute
1 parent 2fc1298 commit ddccd2b

File tree

1 file changed

+2
-9
lines changed

1 file changed

+2
-9
lines changed

libbpf-rs/src/print.rs

+2-9
Original file line numberDiff line numberDiff line change
@@ -35,19 +35,12 @@ fn default_callback(lvl: PrintLevel, msg: &str) {
3535
let _ = io::stderr().write(msg.as_bytes());
3636
}
3737

38-
// not allowed to use function pointers in const functions, so it needs to be a macro
39-
macro_rules! to_ptr {
40-
($x:expr) => {
41-
unsafe { std::mem::transmute::<PrintCallback, *mut ()>($x) }
42-
};
43-
}
44-
4538
fn from_ptr(ptr: *mut ()) -> PrintCallback {
4639
unsafe { std::mem::transmute::<*mut (), PrintCallback>(ptr) }
4740
}
4841

4942
// There is no AtomicFnPtr. This is a workaround.
50-
static PRINT_CB: AtomicPtr<()> = AtomicPtr::new(to_ptr!(default_callback));
43+
static PRINT_CB: AtomicPtr<()> = AtomicPtr::new(default_callback as *mut ());
5144

5245
/// libbpf's default cb uses vfprintf's return code...which is ignored everywhere. Mimic that for
5346
/// completeness
@@ -81,7 +74,7 @@ extern "C" fn outer_print_cb(
8174
///
8275
/// This overrides (and is overridden by) [`ObjectBuilder::debug`]
8376
pub fn set_print(func: PrintCallback) -> PrintCallback {
84-
let cb = to_ptr!(func);
77+
let cb = func as *mut ();
8578
let prev = PRINT_CB.swap(cb, Ordering::Relaxed);
8679
unsafe { libbpf_sys::libbpf_set_print(Some(outer_print_cb)) };
8780
from_ptr(prev)

0 commit comments

Comments
 (0)