@@ -351,7 +351,7 @@ fn FASTCOVER_ctx_init<'a>(
351351}
352352
353353unsafe fn FASTCOVER_buildDictionary (
354- ctx : * const FASTCOVER_ctx_t ,
354+ ctx : & FASTCOVER_ctx_t ,
355355 freqs : & mut [ u32 ] ,
356356 dictBuffer : * mut core:: ffi:: c_void ,
357357 dictBufferCapacity : size_t ,
@@ -362,12 +362,12 @@ unsafe fn FASTCOVER_buildDictionary(
362362 let mut tail = dictBufferCapacity;
363363 let epochs = COVER_computeEpochs (
364364 dictBufferCapacity as u32 ,
365- ( * ctx) . nbDmers as u32 ,
365+ ctx. nbDmers as u32 ,
366366 parameters. k ,
367367 1 ,
368368 ) ;
369369 let maxZeroScoreRun = 10 ;
370- let displayLevel = ( * ctx) . displayLevel ;
370+ let displayLevel = ctx. displayLevel ;
371371 let mut zeroScoreRun = 0 as size_t ;
372372 let mut lastUpdateTime = 0 ;
373373 let mut epoch: size_t = 0 ;
@@ -434,7 +434,7 @@ unsafe fn FASTCOVER_buildDictionary(
434434}
435435unsafe fn FASTCOVER_tryParameters ( opaque : * mut core:: ffi:: c_void ) {
436436 let data = opaque as * mut FASTCOVER_tryParameters_data_t ;
437- let ctx = ( * data) . ctx ;
437+ let ctx = ( * data) . ctx . cast_mut ( ) . as_mut ( ) . unwrap ( ) ;
438438 let parameters = ( * data) . parameters ;
439439 let dictBufferCapacity = ( * data) . dictBufferCapacity ;
440440 let totalCompressedSize = Error :: GENERIC . to_error_code ( ) ;
@@ -456,17 +456,17 @@ unsafe fn FASTCOVER_tryParameters(opaque: *mut core::ffi::c_void) {
456456 parameters,
457457 segmentFreqs,
458458 ) ;
459- let nbFinalizeSamples = ( ( * ctx ) . nbTrainSamples * ( * ctx ) . accelParams . finalize as size_t
460- / 100 ) as core:: ffi:: c_uint ;
459+ let nbFinalizeSamples =
460+ ( ctx . nbTrainSamples * ctx . accelParams . finalize as size_t / 100 ) as core:: ffi:: c_uint ;
461461 selection = COVER_selectDict (
462462 dict. add ( tail) ,
463463 dictBufferCapacity,
464464 dictBufferCapacity. wrapping_sub ( tail) ,
465465 ctx. samples . as_ptr ( ) ,
466466 ctx. samplesSizes . as_ptr ( ) ,
467467 nbFinalizeSamples,
468- ( * ctx) . nbTrainSamples ,
469- ( * ctx) . nbSamples ,
468+ ctx. nbTrainSamples ,
469+ ctx. nbSamples ,
470470 parameters,
471471 ctx. offsets . as_ptr ( ) . cast_mut ( ) ,
472472 totalCompressedSize,
@@ -604,14 +604,18 @@ pub unsafe extern "C" fn ZDICT_trainFromBuffer_fastCover(
604604 eprintln ! ( "Building dictionary" ) ;
605605 }
606606 let segmentFreqs = calloc ( 1 << parameters. f , :: core:: mem:: size_of :: < u16 > ( ) ) as * mut u16 ;
607+
608+ let mut freqs = core:: mem:: take ( & mut ctx. freqs ) ;
607609 let tail = FASTCOVER_buildDictionary (
608610 & ctx,
609- & mut ctx . freqs ,
611+ & mut freqs,
610612 dictBuffer,
611613 dictBufferCapacity,
612614 coverParams,
613615 segmentFreqs,
614616 ) ;
617+ ctx. freqs = freqs;
618+
615619 let nbFinalizeSamples =
616620 ( ctx. nbTrainSamples * ctx. accelParams . finalize as size_t / 100 ) as core:: ffi:: c_uint ;
617621 let dictionarySize = ZDICT_finalizeDictionary (
0 commit comments