diff options
author | Justin Moore <me@justinm.one> | 2021-12-30 19:41:57 -0600 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2022-01-29 11:29:00 +0100 |
commit | be6d07ac2c00ada005e5512b19ff6c6a34cfe985 (patch) | |
tree | a3b1976c0473632621bba86f99e196ba2bd70e7c | |
parent | 0587ff95a9a411c7392ff2aa1775f69ac36caff5 (diff) |
Mark all vtable functions as `unsafe extern "C"`
-rw-r--r-- | src/codegen/mod.rs | 2 | ||||
-rw-r--r-- | tests/expectations/tests/enum_and_vtable_mangling.rs | 2 | ||||
-rw-r--r-- | tests/expectations/tests/nested_vtable.rs | 2 | ||||
-rw-r--r-- | tests/expectations/tests/ref_argument_array.rs | 6 | ||||
-rw-r--r-- | tests/expectations/tests/virtual_interface.rs | 10 | ||||
-rw-r--r-- | tests/expectations/tests/virtual_overloaded.rs | 6 | ||||
-rw-r--r-- | tests/expectations/tests/vtable_recursive_sig.rs | 2 |
7 files changed, 18 insertions, 12 deletions
diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs index b7cee7ec..5ce42c34 100644 --- a/src/codegen/mod.rs +++ b/src/codegen/mod.rs @@ -1082,7 +1082,7 @@ impl<'a> CodeGenerator for Vtable<'a> { }; Some(quote! { - pub #function_name : fn( #( #args ),* ) #ret + pub #function_name : unsafe extern "C" fn( #( #args ),* ) #ret }) }) .collect::<Vec<_>>(); diff --git a/tests/expectations/tests/enum_and_vtable_mangling.rs b/tests/expectations/tests/enum_and_vtable_mangling.rs index 126c40ba..bd6f7ff6 100644 --- a/tests/expectations/tests/enum_and_vtable_mangling.rs +++ b/tests/expectations/tests/enum_and_vtable_mangling.rs @@ -15,7 +15,7 @@ pub enum _bindgen_ty_1 { } #[repr(C)] pub struct C__bindgen_vtable { - pub C_match: fn(this: &mut C), + pub C_match: unsafe extern "C" fn(this: &mut C), } #[repr(C)] #[derive(Debug, Copy, Clone)] diff --git a/tests/expectations/tests/nested_vtable.rs b/tests/expectations/tests/nested_vtable.rs index 92651d45..8747a59f 100644 --- a/tests/expectations/tests/nested_vtable.rs +++ b/tests/expectations/tests/nested_vtable.rs @@ -8,7 +8,7 @@ #[repr(C)] pub struct nsISupports__bindgen_vtable { pub nsISupports_QueryInterface: - fn(this: &mut nsISupports) -> *mut nsISupports, + unsafe extern "C" fn(this: &mut nsISupports) -> *mut nsISupports, } #[repr(C)] #[derive(Debug, Copy, Clone)] diff --git a/tests/expectations/tests/ref_argument_array.rs b/tests/expectations/tests/ref_argument_array.rs index 215fc5da..a99bf2c3 100644 --- a/tests/expectations/tests/ref_argument_array.rs +++ b/tests/expectations/tests/ref_argument_array.rs @@ -8,8 +8,10 @@ pub const NSID_LENGTH: u32 = 10; #[repr(C)] pub struct nsID__bindgen_vtable { - pub nsID_ToProvidedString: - fn(this: &mut nsID, aDest: *mut [::std::os::raw::c_char; 10usize]), + pub nsID_ToProvidedString: unsafe extern "C" fn( + this: &mut nsID, + aDest: *mut [::std::os::raw::c_char; 10usize], + ), } #[repr(C)] #[derive(Debug, Copy, Clone)] diff --git a/tests/expectations/tests/virtual_interface.rs b/tests/expectations/tests/virtual_interface.rs index 79656c28..7677c51f 100644 --- a/tests/expectations/tests/virtual_interface.rs +++ b/tests/expectations/tests/virtual_interface.rs @@ -7,9 +7,11 @@ #[repr(C)] pub struct PureVirtualIFace__bindgen_vtable { - pub PureVirtualIFace_Foo: fn(this: &mut PureVirtualIFace), - pub PureVirtualIFace_Bar: - fn(this: &mut PureVirtualIFace, arg1: ::std::os::raw::c_uint), + pub PureVirtualIFace_Foo: unsafe extern "C" fn(this: &mut PureVirtualIFace), + pub PureVirtualIFace_Bar: unsafe extern "C" fn( + this: &mut PureVirtualIFace, + arg1: ::std::os::raw::c_uint, + ), } #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -40,7 +42,7 @@ impl Default for PureVirtualIFace { } #[repr(C)] pub struct AnotherInterface__bindgen_vtable { - pub AnotherInterface_Baz: fn(this: &mut AnotherInterface), + pub AnotherInterface_Baz: unsafe extern "C" fn(this: &mut AnotherInterface), } #[repr(C)] #[derive(Debug, Copy, Clone)] diff --git a/tests/expectations/tests/virtual_overloaded.rs b/tests/expectations/tests/virtual_overloaded.rs index f619f4ea..3fcfe33e 100644 --- a/tests/expectations/tests/virtual_overloaded.rs +++ b/tests/expectations/tests/virtual_overloaded.rs @@ -7,8 +7,10 @@ #[repr(C)] pub struct C__bindgen_vtable { - pub C_do_thing: fn(this: &mut C, arg1: ::std::os::raw::c_char), - pub C_do_thing1: fn(this: &mut C, arg1: ::std::os::raw::c_int), + pub C_do_thing: + unsafe extern "C" fn(this: &mut C, arg1: ::std::os::raw::c_char), + pub C_do_thing1: + unsafe extern "C" fn(this: &mut C, arg1: ::std::os::raw::c_int), } #[repr(C)] #[derive(Debug, Copy, Clone)] diff --git a/tests/expectations/tests/vtable_recursive_sig.rs b/tests/expectations/tests/vtable_recursive_sig.rs index f136c015..dd1b0f4d 100644 --- a/tests/expectations/tests/vtable_recursive_sig.rs +++ b/tests/expectations/tests/vtable_recursive_sig.rs @@ -7,7 +7,7 @@ #[repr(C)] pub struct Base__bindgen_vtable { - pub Base_AsDerived: fn(this: &mut Base) -> *mut Derived, + pub Base_AsDerived: unsafe extern "C" fn(this: &mut Base) -> *mut Derived, } #[repr(C)] #[derive(Debug, Copy, Clone)] |