codegen: Use raw pointers rather than references in vtable functions.

Closes #2163
diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs
index 3face26..ffb21d1 100644
--- a/src/codegen/mod.rs
+++ b/src/codegen/mod.rs
@@ -1077,9 +1077,9 @@
                     let ret = utils::fnsig_return_ty(ctx, signature);
 
                     args[0] = if m.is_const() {
-                        quote! { this: & #class_ident }
+                        quote! { this: *const #class_ident }
                     } else {
-                        quote! { this: &mut #class_ident }
+                        quote! { this: *mut #class_ident }
                     };
 
                     Some(quote! {
diff --git a/tests/expectations/tests/enum_and_vtable_mangling.rs b/tests/expectations/tests/enum_and_vtable_mangling.rs
index bd6f7ff..5ae76c4 100644
--- a/tests/expectations/tests/enum_and_vtable_mangling.rs
+++ b/tests/expectations/tests/enum_and_vtable_mangling.rs
@@ -15,7 +15,7 @@
 }
 #[repr(C)]
 pub struct C__bindgen_vtable {
-    pub C_match: unsafe extern "C" 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 8747a59..7ee4830 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:
-        unsafe extern "C" 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 a99bf2c..00a8e0e 100644
--- a/tests/expectations/tests/ref_argument_array.rs
+++ b/tests/expectations/tests/ref_argument_array.rs
@@ -9,7 +9,7 @@
 #[repr(C)]
 pub struct nsID__bindgen_vtable {
     pub nsID_ToProvidedString: unsafe extern "C" fn(
-        this: &mut nsID,
+        this: *mut nsID,
         aDest: *mut [::std::os::raw::c_char; 10usize],
     ),
 }
diff --git a/tests/expectations/tests/virtual_interface.rs b/tests/expectations/tests/virtual_interface.rs
index 7677c51..be94f23 100644
--- a/tests/expectations/tests/virtual_interface.rs
+++ b/tests/expectations/tests/virtual_interface.rs
@@ -7,9 +7,9 @@
 
 #[repr(C)]
 pub struct PureVirtualIFace__bindgen_vtable {
-    pub PureVirtualIFace_Foo: unsafe extern "C" fn(this: &mut PureVirtualIFace),
+    pub PureVirtualIFace_Foo: unsafe extern "C" fn(this: *mut PureVirtualIFace),
     pub PureVirtualIFace_Bar: unsafe extern "C" fn(
-        this: &mut PureVirtualIFace,
+        this: *mut PureVirtualIFace,
         arg1: ::std::os::raw::c_uint,
     ),
 }
@@ -42,7 +42,7 @@
 }
 #[repr(C)]
 pub struct AnotherInterface__bindgen_vtable {
-    pub AnotherInterface_Baz: unsafe extern "C" 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 3fcfe33..c117d9e 100644
--- a/tests/expectations/tests/virtual_overloaded.rs
+++ b/tests/expectations/tests/virtual_overloaded.rs
@@ -8,9 +8,9 @@
 #[repr(C)]
 pub struct C__bindgen_vtable {
     pub C_do_thing:
-        unsafe extern "C" fn(this: &mut C, arg1: ::std::os::raw::c_char),
+        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),
+        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 dd1b0f4..74e1dc7 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: unsafe extern "C" fn(this: &mut Base) -> *mut Derived,
+    pub Base_AsDerived: unsafe extern "C" fn(this: *mut Base) -> *mut Derived,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]