arrow-js-ffi icon indicating copy to clipboard operation
arrow-js-ffi copied to clipboard

Add release callback

Open kylebarron opened this issue 1 year ago • 2 comments

It's pretty astounding that this appears to work! Just the fact that it doesn't error is a good sign!

There's a lot of thought still in the memory management between Wasm and JS. We can't call the release callback if we're creating views, because the lifetime of the view might outlive the lifetime of the data. Even if we're copying data to JS, the user might want to do something with their wasm table after viewing it in JS.

So it might be best to keep the release functions standalone. That said, freeing the underlying array will not free the wasm-bindgen wrapper, and if we freed the wrapper after, that would lead to a double-free.

Closes #14

kylebarron avatar Jan 31 '24 01:01 kylebarron

We also need to figure out some way to test that this is actually calling the release callback and that the referenced memory is actually deallocated.

kylebarron avatar Jan 31 '24 05:01 kylebarron

You should be able to check that the release callback is now null https://arrow.apache.org/docs/format/CDataInterface.html#released-structure

kylebarron avatar Jan 31 '24 16:01 kylebarron