Skip to content

Commit

Permalink
Merge pull request gtk-rs#129 from EPashkin/remove_callback_guard
Browse files Browse the repository at this point in the history
Remove callback guard
  • Loading branch information
GuillaumeGomez authored Jun 27, 2018
2 parents a2482e5 + 09929b4 commit fe29598
Show file tree
Hide file tree
Showing 81 changed files with 5 additions and 286 deletions.
1 change: 0 additions & 1 deletion src/application.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ impl<O: IsA<Application> + IsA<glib::object::Object>> ApplicationExtManual for O
#[cfg_attr(feature = "cargo-clippy", allow(transmute_ptr_to_ref))]
unsafe extern "C" fn open_trampoline<P>(this: *mut ffi::GApplication, files: *const *mut ffi::GFile, n_files: libc::c_int, hint: *mut libc::c_char, f: glib_ffi::gpointer)
where P: IsA<Application> {
callback_guard!();
let f: &&(Fn(&P, &[File], &str) + 'static) = transmute(f);
let files: Vec<File> = FromGlibContainer::from_glib_none_num(files, n_files as usize);
f(&Application::from_glib_none(this).downcast_unchecked(), &files, &String::from_glib_none(hint))
Expand Down
5 changes: 0 additions & 5 deletions src/auto/action.rs
Original file line number Diff line number Diff line change
Expand Up @@ -177,35 +177,30 @@ impl<O: IsA<Action> + IsA<glib::object::Object>> ActionExt for O {

unsafe extern "C" fn notify_enabled_trampoline<P>(this: *mut ffi::GAction, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<Action> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&Action::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn notify_name_trampoline<P>(this: *mut ffi::GAction, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<Action> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&Action::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn notify_parameter_type_trampoline<P>(this: *mut ffi::GAction, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<Action> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&Action::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn notify_state_trampoline<P>(this: *mut ffi::GAction, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<Action> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&Action::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn notify_state_type_trampoline<P>(this: *mut ffi::GAction, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<Action> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&Action::from_glib_borrow(this).downcast_unchecked())
}
4 changes: 0 additions & 4 deletions src/auto/action_group.rs
Original file line number Diff line number Diff line change
Expand Up @@ -177,28 +177,24 @@ impl<O: IsA<ActionGroup> + IsA<glib::object::Object>> ActionGroupExt for O {

unsafe extern "C" fn action_added_trampoline<P>(this: *mut ffi::GActionGroup, action_name: *mut libc::c_char, f: glib_ffi::gpointer)
where P: IsA<ActionGroup> {
callback_guard!();
let f: &&(Fn(&P, &str) + 'static) = transmute(f);
f(&ActionGroup::from_glib_borrow(this).downcast_unchecked(), &String::from_glib_none(action_name))
}

unsafe extern "C" fn action_enabled_changed_trampoline<P>(this: *mut ffi::GActionGroup, action_name: *mut libc::c_char, enabled: glib_ffi::gboolean, f: glib_ffi::gpointer)
where P: IsA<ActionGroup> {
callback_guard!();
let f: &&(Fn(&P, &str, bool) + 'static) = transmute(f);
f(&ActionGroup::from_glib_borrow(this).downcast_unchecked(), &String::from_glib_none(action_name), from_glib(enabled))
}

unsafe extern "C" fn action_removed_trampoline<P>(this: *mut ffi::GActionGroup, action_name: *mut libc::c_char, f: glib_ffi::gpointer)
where P: IsA<ActionGroup> {
callback_guard!();
let f: &&(Fn(&P, &str) + 'static) = transmute(f);
f(&ActionGroup::from_glib_borrow(this).downcast_unchecked(), &String::from_glib_none(action_name))
}

unsafe extern "C" fn action_state_changed_trampoline<P>(this: *mut ffi::GActionGroup, action_name: *mut libc::c_char, value: *mut glib_ffi::GVariant, f: glib_ffi::gpointer)
where P: IsA<ActionGroup> {
callback_guard!();
let f: &&(Fn(&P, &str, &glib::Variant) + 'static) = transmute(f);
f(&ActionGroup::from_glib_borrow(this).downcast_unchecked(), &String::from_glib_none(action_name), &from_glib_borrow(value))
}
1 change: 0 additions & 1 deletion src/auto/app_info.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,6 @@ impl AppInfo {
let user_data: Box<Box<R>> = Box::new(Box::new(callback));
unsafe extern "C" fn launch_default_for_uri_async_trampoline<R: FnOnce(Result<(), Error>) + Send + 'static>(_source_object: *mut gobject_ffi::GObject, res: *mut ffi::GAsyncResult, user_data: glib_ffi::gpointer)
{
callback_guard!();
let mut error = ptr::null_mut();
let _ = ffi::g_app_info_launch_default_for_uri_finish(res, &mut error);
let result = if error.is_null() { Ok(()) } else { Err(from_glib_full(error)) };
Expand Down
1 change: 0 additions & 1 deletion src/auto/app_info_monitor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ impl<O: IsA<AppInfoMonitor> + IsA<glib::object::Object>> AppInfoMonitorExt for O

unsafe extern "C" fn changed_trampoline<P>(this: *mut ffi::GAppInfoMonitor, f: glib_ffi::gpointer)
where P: IsA<AppInfoMonitor> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&AppInfoMonitor::from_glib_borrow(this).downcast_unchecked())
}
2 changes: 0 additions & 2 deletions src/auto/app_launch_context.rs
Original file line number Diff line number Diff line change
Expand Up @@ -127,15 +127,13 @@ impl<O: IsA<AppLaunchContext> + IsA<glib::object::Object>> AppLaunchContextExt f
#[cfg(any(feature = "v2_36", feature = "dox"))]
unsafe extern "C" fn launch_failed_trampoline<P>(this: *mut ffi::GAppLaunchContext, startup_notify_id: *mut libc::c_char, f: glib_ffi::gpointer)
where P: IsA<AppLaunchContext> {
callback_guard!();
let f: &&(Fn(&P, &str) + 'static) = transmute(f);
f(&AppLaunchContext::from_glib_borrow(this).downcast_unchecked(), &String::from_glib_none(startup_notify_id))
}

#[cfg(any(feature = "v2_36", feature = "dox"))]
unsafe extern "C" fn launched_trampoline<P>(this: *mut ffi::GAppLaunchContext, info: *mut ffi::GAppInfo, platform_data: *mut glib_ffi::GVariant, f: glib_ffi::gpointer)
where P: IsA<AppLaunchContext> {
callback_guard!();
let f: &&(Fn(&P, &AppInfo, &glib::Variant) + 'static) = transmute(f);
f(&AppLaunchContext::from_glib_borrow(this).downcast_unchecked(), &from_glib_borrow(info), &from_glib_borrow(platform_data))
}
12 changes: 0 additions & 12 deletions src/auto/application.rs
Original file line number Diff line number Diff line change
Expand Up @@ -522,85 +522,73 @@ impl<O: IsA<Application> + IsA<glib::object::Object>> ApplicationExt for O {

unsafe extern "C" fn activate_trampoline<P>(this: *mut ffi::GApplication, f: glib_ffi::gpointer)
where P: IsA<Application> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&Application::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn command_line_trampoline<P>(this: *mut ffi::GApplication, command_line: *mut ffi::GApplicationCommandLine, f: glib_ffi::gpointer) -> libc::c_int
where P: IsA<Application> {
callback_guard!();
let f: &&(Fn(&P, &ApplicationCommandLine) -> i32 + 'static) = transmute(f);
f(&Application::from_glib_borrow(this).downcast_unchecked(), &from_glib_borrow(command_line))
}

unsafe extern "C" fn shutdown_trampoline<P>(this: *mut ffi::GApplication, f: glib_ffi::gpointer)
where P: IsA<Application> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&Application::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn startup_trampoline<P>(this: *mut ffi::GApplication, f: glib_ffi::gpointer)
where P: IsA<Application> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&Application::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn notify_action_group_trampoline<P>(this: *mut ffi::GApplication, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<Application> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&Application::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn notify_application_id_trampoline<P>(this: *mut ffi::GApplication, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<Application> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&Application::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn notify_flags_trampoline<P>(this: *mut ffi::GApplication, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<Application> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&Application::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn notify_inactivity_timeout_trampoline<P>(this: *mut ffi::GApplication, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<Application> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&Application::from_glib_borrow(this).downcast_unchecked())
}

#[cfg(any(feature = "v2_44", feature = "dox"))]
unsafe extern "C" fn notify_is_busy_trampoline<P>(this: *mut ffi::GApplication, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<Application> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&Application::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn notify_is_registered_trampoline<P>(this: *mut ffi::GApplication, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<Application> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&Application::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn notify_is_remote_trampoline<P>(this: *mut ffi::GApplication, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<Application> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&Application::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn notify_resource_base_path_trampoline<P>(this: *mut ffi::GApplication, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<Application> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&Application::from_glib_borrow(this).downcast_unchecked())
}
4 changes: 0 additions & 4 deletions src/auto/application_command_line.rs
Original file line number Diff line number Diff line change
Expand Up @@ -181,28 +181,24 @@ impl<O: IsA<ApplicationCommandLine> + IsA<glib::object::Object>> ApplicationComm

unsafe extern "C" fn notify_arguments_trampoline<P>(this: *mut ffi::GApplicationCommandLine, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<ApplicationCommandLine> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&ApplicationCommandLine::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn notify_is_remote_trampoline<P>(this: *mut ffi::GApplicationCommandLine, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<ApplicationCommandLine> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&ApplicationCommandLine::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn notify_options_trampoline<P>(this: *mut ffi::GApplicationCommandLine, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<ApplicationCommandLine> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&ApplicationCommandLine::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn notify_platform_data_trampoline<P>(this: *mut ffi::GApplicationCommandLine, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<ApplicationCommandLine> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&ApplicationCommandLine::from_glib_borrow(this).downcast_unchecked())
}
2 changes: 0 additions & 2 deletions src/auto/buffered_input_stream.rs
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,6 @@ impl<O: IsA<BufferedInputStream> + IsA<glib::object::Object> + Clone + 'static>
let user_data: Box<Box<Q>> = Box::new(Box::new(callback));
unsafe extern "C" fn fill_async_trampoline<Q: FnOnce(Result<isize, Error>) + Send + 'static>(_source_object: *mut gobject_ffi::GObject, res: *mut ffi::GAsyncResult, user_data: glib_ffi::gpointer)
{
callback_guard!();
let mut error = ptr::null_mut();
let ret = ffi::g_buffered_input_stream_fill_finish(_source_object as *mut _, res, &mut error);
let result = if error.is_null() { Ok(ret) } else { Err(from_glib_full(error)) };
Expand Down Expand Up @@ -167,7 +166,6 @@ impl<O: IsA<BufferedInputStream> + IsA<glib::object::Object> + Clone + 'static>

unsafe extern "C" fn notify_buffer_size_trampoline<P>(this: *mut ffi::GBufferedInputStream, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<BufferedInputStream> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&BufferedInputStream::from_glib_borrow(this).downcast_unchecked())
}
2 changes: 0 additions & 2 deletions src/auto/buffered_output_stream.rs
Original file line number Diff line number Diff line change
Expand Up @@ -99,14 +99,12 @@ impl<O: IsA<BufferedOutputStream> + IsA<glib::object::Object>> BufferedOutputStr

unsafe extern "C" fn notify_auto_grow_trampoline<P>(this: *mut ffi::GBufferedOutputStream, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<BufferedOutputStream> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&BufferedOutputStream::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn notify_buffer_size_trampoline<P>(this: *mut ffi::GBufferedOutputStream, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<BufferedOutputStream> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&BufferedOutputStream::from_glib_borrow(this).downcast_unchecked())
}
1 change: 0 additions & 1 deletion src/auto/bytes_icon.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ impl<O: IsA<BytesIcon> + IsA<glib::object::Object>> BytesIconExt for O {
#[cfg(any(feature = "v2_38", feature = "dox"))]
unsafe extern "C" fn notify_bytes_trampoline<P>(this: *mut ffi::GBytesIcon, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<BytesIcon> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&BytesIcon::from_glib_borrow(this).downcast_unchecked())
}
1 change: 0 additions & 1 deletion src/auto/cancellable.rs
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,6 @@ unsafe impl Send for Cancellable {}
unsafe impl Sync for Cancellable {}

unsafe extern "C" fn cancelled_trampoline(this: *mut ffi::GCancellable, f: glib_ffi::gpointer) {
callback_guard!();
let f: &&(Fn(&Cancellable) + Send + Sync + 'static) = transmute(f);
f(&from_glib_borrow(this))
}
3 changes: 0 additions & 3 deletions src/auto/charset_converter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -118,21 +118,18 @@ impl<O: IsA<CharsetConverter> + IsA<glib::object::Object>> CharsetConverterExt f

unsafe extern "C" fn notify_from_charset_trampoline<P>(this: *mut ffi::GCharsetConverter, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<CharsetConverter> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&CharsetConverter::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn notify_to_charset_trampoline<P>(this: *mut ffi::GCharsetConverter, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<CharsetConverter> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&CharsetConverter::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn notify_use_fallback_trampoline<P>(this: *mut ffi::GCharsetConverter, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<CharsetConverter> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&CharsetConverter::from_glib_borrow(this).downcast_unchecked())
}
1 change: 0 additions & 1 deletion src/auto/converter_input_stream.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ impl<O: IsA<ConverterInputStream> + IsA<glib::object::Object>> ConverterInputStr

unsafe extern "C" fn notify_converter_trampoline<P>(this: *mut ffi::GConverterInputStream, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<ConverterInputStream> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&ConverterInputStream::from_glib_borrow(this).downcast_unchecked())
}
1 change: 0 additions & 1 deletion src/auto/converter_output_stream.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ impl<O: IsA<ConverterOutputStream> + IsA<glib::object::Object>> ConverterOutputS

unsafe extern "C" fn notify_converter_trampoline<P>(this: *mut ffi::GConverterOutputStream, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<ConverterOutputStream> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&ConverterOutputStream::from_glib_borrow(this).downcast_unchecked())
}
4 changes: 0 additions & 4 deletions src/auto/data_input_stream.rs
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,6 @@ impl<O: IsA<DataInputStream> + IsA<glib::object::Object> + Clone + 'static> Data
let user_data: Box<Box<Q>> = Box::new(Box::new(callback));
unsafe extern "C" fn read_until_async_trampoline<Q: FnOnce(Result<(String, usize), Error>) + Send + 'static>(_source_object: *mut gobject_ffi::GObject, res: *mut ffi::GAsyncResult, user_data: glib_ffi::gpointer)
{
callback_guard!();
let mut error = ptr::null_mut();
let mut length = mem::uninitialized();
let ret = ffi::g_data_input_stream_read_until_finish(_source_object as *mut _, res, &mut length, &mut error);
Expand Down Expand Up @@ -264,7 +263,6 @@ impl<O: IsA<DataInputStream> + IsA<glib::object::Object> + Clone + 'static> Data
let user_data: Box<Box<Q>> = Box::new(Box::new(callback));
unsafe extern "C" fn read_upto_async_trampoline<Q: FnOnce(Result<(String, usize), Error>) + Send + 'static>(_source_object: *mut gobject_ffi::GObject, res: *mut ffi::GAsyncResult, user_data: glib_ffi::gpointer)
{
callback_guard!();
let mut error = ptr::null_mut();
let mut length = mem::uninitialized();
let ret = ffi::g_data_input_stream_read_upto_finish(_source_object as *mut _, res, &mut length, &mut error);
Expand Down Expand Up @@ -334,14 +332,12 @@ impl<O: IsA<DataInputStream> + IsA<glib::object::Object> + Clone + 'static> Data

unsafe extern "C" fn notify_byte_order_trampoline<P>(this: *mut ffi::GDataInputStream, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<DataInputStream> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&DataInputStream::from_glib_borrow(this).downcast_unchecked())
}

unsafe extern "C" fn notify_newline_type_trampoline<P>(this: *mut ffi::GDataInputStream, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<DataInputStream> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&DataInputStream::from_glib_borrow(this).downcast_unchecked())
}
1 change: 0 additions & 1 deletion src/auto/data_output_stream.rs
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,6 @@ impl<O: IsA<DataOutputStream> + IsA<glib::object::Object>> DataOutputStreamExt f

unsafe extern "C" fn notify_byte_order_trampoline<P>(this: *mut ffi::GDataOutputStream, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<DataOutputStream> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&DataOutputStream::from_glib_borrow(this).downcast_unchecked())
}
1 change: 0 additions & 1 deletion src/auto/desktop_app_info.rs
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,6 @@ impl<O: IsA<DesktopAppInfo> + IsA<glib::object::Object>> DesktopAppInfoExt for O

unsafe extern "C" fn notify_filename_trampoline<P>(this: *mut ffi::GDesktopAppInfo, _param_spec: glib_ffi::gpointer, f: glib_ffi::gpointer)
where P: IsA<DesktopAppInfo> {
callback_guard!();
let f: &&(Fn(&P) + 'static) = transmute(f);
f(&DesktopAppInfo::from_glib_borrow(this).downcast_unchecked())
}
Loading

0 comments on commit fe29598

Please sign in to comment.