Skip to content

Commit a281c25

Browse files
committed
Refactor QMetaObject
Renamed fields and extracted metacall function type alias.
1 parent 67f2afd commit a281c25

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

qmetaobject/src/lib.rs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -580,17 +580,25 @@ pub unsafe fn invoke_signal(
580580
})
581581
}
582582

583+
/// Wrapper for `QMetaObject`'s private data's `StaticMetacallFunction` typedef.
584+
type StaticMetacallFunction = Option<extern "C" fn(
585+
o: *mut c_void, // FIXME: should be QObject or something
586+
c: u32,
587+
idx: u32,
588+
a: *const *mut c_void
589+
)>;
590+
583591
/// Same as a C++ QMetaObject.
584592
#[doc(hidden)]
585593
#[repr(C)]
586594
pub struct QMetaObject {
587-
pub superdata: *const QMetaObject,
595+
// fields are slightly renamed from Qt to match Rust code style
596+
pub super_data: *const QMetaObject,
588597
pub string_data: *const u8,
589598
pub data: *const u32,
590-
pub static_metacall:
591-
Option<extern "C" fn(o: *mut c_void, c: u32, idx: u32, a: *const *mut c_void)>,
592-
pub r: *const c_void,
593-
pub e: *const c_void,
599+
pub static_metacall: StaticMetacallFunction,
600+
pub meta_types: *const c_void,
601+
pub extra_data: *const c_void,
594602
}
595603

596604
unsafe impl Sync for QMetaObject {}

qmetaobject_impl/src/qobject_impl.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -762,12 +762,12 @@ pub fn generate(input: TokenStream, is_qobject: bool) -> TokenStream {
762762
let mo = if ast.generics.params.is_empty() {
763763
quote! {
764764
qmetaobject_lazy_static! { static ref MO: #crate_::QMetaObject = #crate_::QMetaObject {
765-
superdata: #base_meta_object,
765+
super_data: #base_meta_object,
766766
string_data: STRING_DATA.as_ptr(),
767767
data: INT_DATA.as_ptr(),
768768
static_metacall: Some(static_metacall),
769-
r: ::std::ptr::null(),
770-
e: ::std::ptr::null(),
769+
meta_types: ::std::ptr::null(),
770+
extra_data: ::std::ptr::null(),
771771
};};
772772
return &*MO;
773773
}
@@ -791,12 +791,12 @@ pub fn generate(input: TokenStream, is_qobject: bool) -> TokenStream {
791791
let mut h = HASHMAP.lock().unwrap();
792792
let mo = h.entry(TypeId::of::<#name #ty_generics>()).or_insert_with(
793793
|| Box::new(#crate_::QMetaObject {
794-
superdata: #base_meta_object,
794+
super_data: #base_meta_object,
795795
string_data: STRING_DATA.as_ptr(),
796796
data: INT_DATA.as_ptr(),
797797
static_metacall: Some(static_metacall #turbo_generics),
798-
r: ::std::ptr::null(),
799-
e: ::std::ptr::null(),
798+
meta_types: ::std::ptr::null(),
799+
extra_data: ::std::ptr::null(),
800800
}));
801801
return &**mo;
802802
}
@@ -1022,12 +1022,12 @@ pub fn generate_enum(input: TokenStream) -> TokenStream {
10221022
let mo = if ast.generics.params.is_empty() {
10231023
quote! {
10241024
qmetaobject_lazy_static! { static ref MO: #crate_::QMetaObject = #crate_::QMetaObject {
1025-
superdata: ::std::ptr::null(),
1025+
super_data: ::std::ptr::null(),
10261026
string_data: STRING_DATA.as_ptr(),
10271027
data: INT_DATA.as_ptr(),
10281028
static_metacall: None,
1029-
r: ::std::ptr::null(),
1030-
e: ::std::ptr::null(),
1029+
meta_types: ::std::ptr::null(),
1030+
extra_data: ::std::ptr::null(),
10311031
};};
10321032
return &*MO;
10331033
}

0 commit comments

Comments
 (0)