Skip to content

Commit a77e129

Browse files
committed
refactor: remove custom destructor for FFI_ArrowArrayStream and simplify capsule creation
1 parent 358fe30 commit a77e129

File tree

1 file changed

+2
-17
lines changed

1 file changed

+2
-17
lines changed

src/dataframe.rs

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
use std::collections::HashMap;
1919
use std::ffi::CString;
20-
use std::os::raw::c_void;
2120
use std::sync::Arc;
2221

2322
use arrow::array::{new_null_array, RecordBatch, RecordBatchReader};
@@ -964,23 +963,9 @@ impl PyDataFrame {
964963
let reader: Box<dyn RecordBatchReader + Send> = Box::new(reader);
965964

966965
let stream = FFI_ArrowArrayStream::new(reader);
967-
fn drop_stream(ptr: *mut FFI_ArrowArrayStream, _ctx: *mut c_void) {
968-
if ptr.is_null() {
969-
return;
970-
}
971-
unsafe {
972-
drop(Box::from_raw(ptr));
973-
}
974-
}
975-
let stream_ptr = Box::into_raw(Box::new(stream));
976966
let name = CString::new("arrow_array_stream").unwrap();
977-
let capsule = PyCapsule::new_bound_with_destructor(
978-
py,
979-
stream_ptr,
980-
Some(name),
981-
drop_stream as fn(*mut FFI_ArrowArrayStream, *mut c_void),
982-
)
983-
.map_err(py_datafusion_err)?;
967+
968+
let capsule = PyCapsule::new(py, stream, Some(name)).map_err(py_datafusion_err)?;
984969
Ok(capsule)
985970
}
986971

0 commit comments

Comments
 (0)