A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd

Remove cast_ptr macro and cast argv to c_char

+1 -21
+1 -21
crates/cli/src/lib.rs
··· 12 12 use std::{env, ffi::CStr}; 13 13 use std::{fs, thread}; 14 14 15 - #[macro_export] 16 - macro_rules! cast_ptr { 17 - ($ptr:expr) => {{ 18 - #[cfg(all(target_arch = "aarch64", target_os = "macos"))] 19 - { 20 - $ptr as *const i8 21 - } 22 - 23 - #[cfg(all(target_arch = "aarch64", target_os = "linux"))] 24 - { 25 - $ptr as *const u8 26 - } 27 - 28 - #[cfg(not(target_arch = "aarch64"))] 29 - { 30 - $ptr as *const i8 31 - } 32 - }}; 33 - } 34 - 35 15 #[no_mangle] 36 16 pub extern "C" fn parse_args(argc: usize, argv: *const *const u8) -> i32 { 37 17 let string_array = unsafe { std::slice::from_raw_parts(argv, argc) }; 38 18 let args: Vec<&str> = string_array 39 19 .iter() 40 20 .map(|&ptr| { 41 - let c_str = unsafe { CStr::from_ptr(cast_ptr!(ptr)) }; 21 + let c_str = unsafe { CStr::from_ptr(ptr as *const std::ffi::c_char) }; 42 22 c_str 43 23 .to_str() 44 24 .unwrap_or("[Invalid UTF-8 or Non Null-Terminated String]")