From b57308003e8a9401f530082598fc00bd575dbdf4 Mon Sep 17 00:00:00 2001 From: PThorpe92 Date: Fri, 17 Jan 2025 21:54:25 -0500 Subject: [PATCH] Handle freeing memory in finalize, remove unused free fn --- extensions/core/src/lib.rs | 1 - macros/src/lib.rs | 11 ----------- 2 files changed, 12 deletions(-) diff --git a/extensions/core/src/lib.rs b/extensions/core/src/lib.rs index c63e07c08..dd71af7c6 100644 --- a/extensions/core/src/lib.rs +++ b/extensions/core/src/lib.rs @@ -43,7 +43,6 @@ pub trait Scalar { #[repr(C)] pub struct AggCtx { pub state: *mut c_void, - pub free: Option, } pub trait AggFunc { diff --git a/macros/src/lib.rs b/macros/src/lib.rs index 685beca54..2978fb617 100644 --- a/macros/src/lib.rs +++ b/macros/src/lib.rs @@ -211,7 +211,6 @@ pub fn derive_agg_func(input: TokenStream) -> TokenStream { let step_fn_name = format_ident!("{}_step", struct_name); let finalize_fn_name = format_ident!("{}_finalize", struct_name); let init_fn_name = format_ident!("{}_init", struct_name); - let free_fn_name = format_ident!("{}_free", struct_name); let register_fn_name = format_ident!("register_{}", struct_name); let expanded = quote! { @@ -221,20 +220,10 @@ pub fn derive_agg_func(input: TokenStream) -> TokenStream { let state = Box::new(<#struct_name as ::limbo_ext::AggFunc>::State::default()); let ctx = Box::new(::limbo_ext::AggCtx { state: Box::into_raw(state) as *mut ::std::os::raw::c_void, - free: Some(#struct_name::#free_fn_name), }); Box::into_raw(ctx) } - #[no_mangle] - pub extern "C" fn #free_fn_name(state: *mut ::std::os::raw::c_void) { - if !state.is_null() { - unsafe { - let _ = Box::from_raw(state as *mut <#struct_name as ::limbo_ext::AggFunc>::State); - } - } - } - #[no_mangle] pub extern "C" fn #step_fn_name( ctx: *mut ::limbo_ext::AggCtx,