correct casting

This commit is contained in:
Janis 2023-04-21 22:03:01 +02:00
parent f8096cbba5
commit 93d42f6be7

View file

@ -251,7 +251,7 @@ pub fn generate_class_impl<W: Write>(class: &Class, sdk: &Sdk, w: &mut W) -> any
field.ty.rust_type(sdk, w)?; field.ty.rust_type(sdk, w)?;
writeln!( writeln!(
w, w,
" {{unsafe {{ &*self.as_ptr().offset({}) }} }}", " {{unsafe {{ &*self.as_ptr().offset({}).cast() }} }}",
field.offset field.offset
)?; )?;
@ -259,7 +259,7 @@ pub fn generate_class_impl<W: Write>(class: &Class, sdk: &Sdk, w: &mut W) -> any
field.ty.rust_type(sdk, w)?; field.ty.rust_type(sdk, w)?;
writeln!( writeln!(
w, w,
" {{unsafe {{ &mut *self.as_mut_ptr().offset({}) }} }}", " {{unsafe {{ &mut *self.as_mut_ptr().offset({}).cast() }} }}",
field.offset field.offset
)?; )?;
@ -268,7 +268,7 @@ pub fn generate_class_impl<W: Write>(class: &Class, sdk: &Sdk, w: &mut W) -> any
write!(w, ") -> ()")?; write!(w, ") -> ()")?;
writeln!( writeln!(
w, w,
" {{*unsafe {{ &mut *self.as_mut_ptr().offset({}) }} = {}; }}", " {{*unsafe {{ &mut *self.as_mut_ptr().offset({}).cast() }} = {}; }}",
field.offset, field.name field.offset, field.name
)?; )?;
} }
@ -326,7 +326,7 @@ fn generate_find_object<W: Write>(name: &str, w: &mut W) -> anyhow::Result<()> {
None None
}} }}
}} }}
}}).cast() }}).map(|object| object.cast())
}} }}
"# "#
)?; )?;
@ -368,7 +368,7 @@ pub fn generate_method<W: Write>(
write!(w, "let func: UFunction = ")?; write!(w, "let func: UFunction = ")?;
generate_find_object(&method.full_name, w)?; generate_find_object(&method.full_name, w)?;
writeln!(w, ";")?; writeln!(w, ".expect(\"function '{}' not found\");", method.full_name)?;
let params_name = format!("{}_{}_Params", class.rust_name(), method.name); let params_name = format!("{}_{}_Params", class.rust_name(), method.name);
writeln!(w, "let mut params = {params_name}::zeroed();")?; writeln!(w, "let mut params = {params_name}::zeroed();")?;