diff --git a/engine/src/conversion/codegen_cpp/mod.rs b/engine/src/conversion/codegen_cpp/mod.rs index 278aa5d55..578ebab05 100644 --- a/engine/src/conversion/codegen_cpp/mod.rs +++ b/engine/src/conversion/codegen_cpp/mod.rs @@ -517,7 +517,7 @@ impl<'a> CppCodeGenerator<'a> { CppFunctionBody::AllocUninitialized(ty) => { let namespaced_ty = self.namespaced_name(ty); ( - format!("new_appropriately<{}>(1);", namespaced_ty,), + format!("new_appropriately<{}>();", namespaced_ty,), "".to_string(), true, ) diff --git a/engine/src/conversion/codegen_cpp/new_and_delete_prelude.rs b/engine/src/conversion/codegen_cpp/new_and_delete_prelude.rs index 67e9e8cc4..317dfcb5d 100644 --- a/engine/src/conversion/codegen_cpp/new_and_delete_prelude.rs +++ b/engine/src/conversion/codegen_cpp/new_and_delete_prelude.rs @@ -35,10 +35,10 @@ pub(super) static NEW_AND_DELETE_PRELUDE: &str = indoc! {" template void *new_imp(size_t count, long) { return ::operator new(count); } - template T *new_appropriately(size_t count) { + template T *new_appropriately() { // 0 is a better match for the first 'delete_imp' so will match // preferentially. - return static_cast(new_imp(count, 0)); + return static_cast(new_imp(sizeof(T), 0)); } #endif // AUTOCXX_NEW_AND_DELETE_PRELUDE "};