Skip to content

Commit 22f5e40

Browse files
Steal pointer in pineappl_fktable_optimize instead of returning FkTable
1 parent 7aa2928 commit 22f5e40

2 files changed

Lines changed: 4 additions & 7 deletions

File tree

examples/cpp/evolve-grid.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,8 +280,8 @@ int main() {
280280
pineappl_grid_write(fktable, "evolved-grid.pineappl.lz4");
281281

282282
// optimise the FK table and then write into disk
283-
pineappl_fktable* fktable_opt = pineappl_fktable_optimize(fktable, PINEAPPL_FK_ASSUMPTIONS_NF3_SYM);
284-
pineappl_grid_write(fktable_opt, "evolved-grid-optimised.pineappl.lz4");
283+
pineappl_fktable_optimize(fktable, PINEAPPL_FK_ASSUMPTIONS_NF3_SYM);
284+
pineappl_grid_write(fktable, "evolved-grid-optimised.pineappl.lz4");
285285

286286
pineappl_grid_delete(grid);
287287
pineappl_grid_delete(fktable);

pineappl_capi/src/lib.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2286,12 +2286,9 @@ pub unsafe extern "C" fn pineappl_grid_evolve(
22862286
///
22872287
/// This function panics if `grid` is not an FK table-like object.
22882288
#[no_mangle]
2289-
pub unsafe extern "C" fn pineappl_fktable_optimize(
2290-
grid: *mut Grid,
2291-
assumptions: FkAssumptions,
2292-
) -> Box<FkTable> {
2289+
pub unsafe extern "C" fn pineappl_fktable_optimize(grid: *mut Grid, assumptions: FkAssumptions) {
22932290
let grid = unsafe { &mut *grid };
22942291
let mut fktable = FkTable::try_from(grid.clone()).unwrap();
22952292
fktable.optimize(assumptions);
2296-
Box::new(fktable)
2293+
unsafe { std::ptr::replace(grid, fktable.into_grid()) };
22972294
}

0 commit comments

Comments
 (0)