@@ -390,7 +390,7 @@ pub mod simulation {
390390 let parent_mut = site_last_mutation_tables[ mut_pos] ;
391391 let site = site_id_map_tables[ mut_pos] ;
392392 let new_mutation = tables
393- . add_mutation ( site, c, parent_mut , t, Some ( derived_state) )
393+ . add_mutation ( site, c, MutationId :: NULL , t, Some ( derived_state) )
394394 . unwrap ( ) ;
395395
396396 site_last_mutation_tables[ mut_pos] = new_mutation;
@@ -413,7 +413,7 @@ pub mod simulation {
413413 let parent_mut = site_last_mutation_tr_tbls[ mut_pos] ;
414414 let site = site_id_map_tr_tbls[ mut_pos] ;
415415 let new_mutation = tr_tbls
416- . add_mutation ( site, c, parent_mut , t, Some ( derived_state) )
416+ . add_mutation ( site, c, MutationId :: NULL , t, Some ( derived_state) )
417417 . unwrap ( ) ;
418418 site_last_mutation_tr_tbls[ mut_pos] = new_mutation;
419419 }
@@ -447,6 +447,23 @@ pub mod simulation {
447447 // build indices
448448 tables. build_index ( ) . unwrap ( ) ;
449449 tr_tbls. build_index ( ) . unwrap ( ) ;
450+
451+ // Calculate mutation parents
452+ // TODO: need safe API for this.
453+ let code = unsafe {
454+ crate :: sys:: bindings:: tsk_table_collection_compute_mutation_parents (
455+ tables. as_mut_ptr ( ) ,
456+ 0 ,
457+ )
458+ } ;
459+ assert_eq ! ( code, 0 ) ;
460+ let code = unsafe {
461+ crate :: sys:: bindings:: tsk_table_collection_compute_mutation_parents (
462+ tr_tbls. as_mut_ptr ( ) ,
463+ 0 ,
464+ )
465+ } ;
466+ assert_eq ! ( code, 0 ) ;
450467
451468 // to tree sequences
452469 let treeseq_opts = TreeSequenceFlags :: default ( ) ;
0 commit comments