Skip to content

Commit e90e097

Browse files
Use std::ptr::{read, write} to avoid copies i pineappl_fktable_optimize of F-API
1 parent 22f5e40 commit e90e097

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

pineappl_capi/src/lib.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2288,7 +2288,8 @@ pub unsafe extern "C" fn pineappl_grid_evolve(
22882288
#[no_mangle]
22892289
pub unsafe extern "C" fn pineappl_fktable_optimize(grid: *mut Grid, assumptions: FkAssumptions) {
22902290
let grid = unsafe { &mut *grid };
2291-
let mut fktable = FkTable::try_from(grid.clone()).unwrap();
2291+
let read_grid = unsafe { std::ptr::read(grid) };
2292+
let mut fktable = FkTable::try_from(read_grid).unwrap();
22922293
fktable.optimize(assumptions);
2293-
unsafe { std::ptr::replace(grid, fktable.into_grid()) };
2294+
unsafe { std::ptr::write(grid, fktable.into_grid()) };
22942295
}

0 commit comments

Comments
 (0)