File tree Expand file tree Collapse file tree 1 file changed +8
-6
lines changed Expand file tree Collapse file tree 1 file changed +8
-6
lines changed Original file line number Diff line number Diff line change @@ -1020,6 +1020,10 @@ impl TreeSequence {
1020
1020
handle_tsk_return_value ! ( rv, treeseq)
1021
1021
}
1022
1022
1023
+ fn new_uninit ( ) -> Self {
1024
+ Self :: wrap ( )
1025
+ }
1026
+
1023
1027
/// Dump the tree sequence to file.
1024
1028
///
1025
1029
/// # Note
@@ -1190,12 +1194,10 @@ impl TreeSequence {
1190
1194
options : O ,
1191
1195
idmap : bool ,
1192
1196
) -> Result < ( Self , Option < Vec < NodeId > > ) , TskitError > {
1193
- let mut tables = TableCollection :: new ( unsafe { ( * ( * self . inner ) . tables ) . sequence_length } ) ?;
1194
- match tables. build_index ( ) {
1195
- Ok ( _) => ( ) ,
1196
- Err ( e) => return Err ( e) ,
1197
- }
1198
- let mut ts = tables. tree_sequence ( TreeSequenceFlags :: default ( ) ) ?;
1197
+
1198
+ // The output is an UNINITIALIZED treeseq,
1199
+ // else we leak memory.
1200
+ let mut ts = Self :: new_uninit ( ) ;
1199
1201
let mut output_node_map: Vec < NodeId > = vec ! [ ] ;
1200
1202
if idmap {
1201
1203
output_node_map. resize ( usize:: try_from ( self . nodes ( ) . num_rows ( ) ) ?, NodeId :: NULL ) ;
You can’t perform that action at this time.
0 commit comments