Skip to content

Commit 1f37faf

Browse files
committed
Further simplify.
1 parent c0e4575 commit 1f37faf

File tree

2 files changed

+5
-8
lines changed

2 files changed

+5
-8
lines changed

engine/src/conversion/codegen_rs/fun_codegen.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -254,18 +254,14 @@ impl<'a> FnGenerator<'a> {
254254
let mut local_variables = Vec::new();
255255
let mut arg_list = Vec::new();
256256
let mut ptr_arg_name = None;
257-
let wrap_unsafe_calls = matches!(self.unsafety, UnsafetyNeeded::JustBridge)
258-
|| self.always_unsafe_due_to_trait_definition;
259257
let ret_type = Cow::Borrowed(ret_type);
260258
for pd in self.param_details {
261259
let wrapper_arg_name = if pd.self_type.is_some() && !avoid_self {
262260
parse_quote!(self)
263261
} else {
264262
pd.name.clone()
265263
};
266-
let rust_for_param = pd
267-
.conversion
268-
.rust_conversion(wrapper_arg_name.clone(), wrap_unsafe_calls);
264+
let rust_for_param = pd.conversion.rust_conversion(wrapper_arg_name.clone());
269265
let RustParamConversion {
270266
ty,
271267
conversion,

engine/src/conversion/codegen_rs/function_wrapper_rs.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ pub(super) struct RustParamConversion {
2727

2828
impl TypeConversionPolicy {
2929
/// If returns `None` then this parameter should be omitted entirely.
30-
pub(super) fn rust_conversion(&self, var: Pat, wrap_in_unsafe: bool) -> RustParamConversion {
30+
pub(super) fn rust_conversion(&self, var: Pat) -> RustParamConversion {
3131
match self.rust_conversion {
3232
RustConversionType::None => RustParamConversion {
3333
ty: self.converted_rust_type(),
@@ -108,7 +108,6 @@ impl TypeConversionPolicy {
108108
panic!("Unexpected non-ident parameter name");
109109
};
110110
let space_var_name = make_ident(format!("{}_space", var_name));
111-
let call = quote! { #space_var_name.as_mut().populate(#var_name); };
112111
let ty = &self.unwrapped_type;
113112
let ty = parse_quote! { impl autocxx::ValueParam<#ty> };
114113
// This is the usual trick to put something on the stack, then
@@ -127,7 +126,9 @@ impl TypeConversionPolicy {
127126
std::pin::Pin::new_unchecked(&mut #space_var_name);
128127
},
129128
),
130-
MaybeUnsafeStmt::maybe_unsafe(quote! { #call}, wrap_in_unsafe),
129+
MaybeUnsafeStmt::needs_unsafe(
130+
quote! { #space_var_name.as_mut().populate(#var_name); },
131+
),
131132
],
132133
conversion: quote! {
133134
#space_var_name.get_ptr()

0 commit comments

Comments
 (0)