1
0
Fork 0

Remove function pointer transmutes

This commit is contained in:
Robbert van der Helm 2022-02-28 16:46:06 +01:00
parent 0609f89df6
commit 17b51c8920

View file

@ -25,17 +25,17 @@ macro_rules! nih_export_clap {
} }
// We don't need any special initialization or deinitialization handling // We don't need any special initialization or deinitialization handling
pub fn init(_plugin_path: *const ::std::os::raw::c_char) -> bool { pub extern "C" fn init(_plugin_path: *const ::std::os::raw::c_char) -> bool {
nih_log!("clap::init()"); nih_log!("clap::init()");
true true
} }
pub fn deinit() { pub extern "C" fn deinit() {
nih_log!("clap::deinit()"); nih_log!("clap::deinit()");
} }
pub fn get_factory( pub extern "C" fn get_factory(
factory_id: *const ::std::os::raw::c_char, factory_id: *const ::std::os::raw::c_char,
) -> *const ::std::ffi::c_void { ) -> *const ::std::ffi::c_void {
if !factory_id.is_null() if !factory_id.is_null()
@ -56,20 +56,9 @@ macro_rules! nih_export_clap {
pub static clap_entry: ::nih_plug::wrapper::clap::clap_plugin_entry = pub static clap_entry: ::nih_plug::wrapper::clap::clap_plugin_entry =
::nih_plug::wrapper::clap::clap_plugin_entry { ::nih_plug::wrapper::clap::clap_plugin_entry {
clap_version: ::nih_plug::wrapper::clap::CLAP_VERSION, clap_version: ::nih_plug::wrapper::clap::CLAP_VERSION,
// These function pointers are marked as `extern "C"`but there's no reason why the symbols init: self::clap::init,
// would need to be exported, so we need these transmutes deinit: self::clap::deinit,
init: unsafe { get_factory: self::clap::get_factory,
::std::mem::transmute(
self::clap::init as fn(*const ::std::os::raw::c_char) -> bool,
)
},
deinit: unsafe { ::std::mem::transmute(self::clap::deinit as fn()) },
get_factory: unsafe {
::std::mem::transmute(
self::clap::get_factory
as fn(*const ::std::os::raw::c_char) -> *const ::std::ffi::c_void,
)
},
}; };
}; };
} }