@@ -730,12 +730,12 @@ unsafe fn ZDICT_fillNoise(buffer: *mut core::ffi::c_void, length: size_t) {
730730const MAXREPOFFSET : core:: ffi:: c_int = 1024 ;
731731unsafe fn ZDICT_countEStats (
732732 esr : EStats_ress_t ,
733- params : * const ZSTD_parameters ,
734- countLit : * mut core :: ffi :: c_uint ,
735- offsetcodeCount : * mut core :: ffi :: c_uint ,
736- matchlengthCount : * mut core :: ffi :: c_uint ,
737- litlengthCount : * mut core :: ffi :: c_uint ,
738- repOffsets : * mut u32 ,
733+ params : & ZSTD_parameters ,
734+ countLit : & mut [ u32 ; 256 ] ,
735+ offsetcodeCount : & mut [ u32 ; 31 ] ,
736+ matchlengthCount : & mut [ u32 ; 53 ] ,
737+ litlengthCount : & mut [ u32 ; 36 ] ,
738+ repOffsets : & mut [ u32 ; 1024 ] ,
739739 src : * const core:: ffi:: c_void ,
740740 mut srcSize : size_t ,
741741 notificationLevel : u32 ,
@@ -771,40 +771,32 @@ unsafe fn ZDICT_countEStats(
771771 }
772772 if cSize != 0 {
773773 let seqStorePtr = ZSTD_getSeqStore ( esr. zc ) ;
774- let mut bytePtr = core:: ptr:: null :: < u8 > ( ) ;
775- bytePtr = ( * seqStorePtr) . litStart ;
774+
775+ /* literals stats */
776+ let mut bytePtr = ( * seqStorePtr) . litStart as * const u8 ;
776777 while bytePtr < ( * seqStorePtr) . lit as * const u8 {
777- let fresh9 = & mut ( * countLit. offset ( * bytePtr as isize ) ) ;
778- * fresh9 = ( * fresh9) . wrapping_add ( 1 ) ;
778+ countLit[ usize:: from ( * bytePtr) ] += 1 ;
779779 bytePtr = bytePtr. add ( 1 ) ;
780780 }
781+
782+ /* seqStats */
781783 let nbSeq = ( ( * seqStorePtr) . sequences ) . offset_from ( ( * seqStorePtr) . sequencesStart )
782784 as core:: ffi:: c_long as u32 ;
783785 ZSTD_seqToCodes ( seqStorePtr) ;
786+
784787 let codePtr: * const u8 = ( * seqStorePtr) . ofCode ;
785- let mut u: u32 = 0 ;
786- u = 0 ;
787- while u < nbSeq {
788- let fresh10 = & mut ( * offsetcodeCount. offset ( * codePtr. offset ( u as isize ) as isize ) ) ;
789- * fresh10 = ( * fresh10) . wrapping_add ( 1 ) ;
790- u = u. wrapping_add ( 1 ) ;
788+ for u in 0 ..nbSeq as usize {
789+ offsetcodeCount[ * codePtr. add ( u) as usize ] += 1 ;
791790 }
792- let codePtr_0: * const u8 = ( * seqStorePtr) . mlCode ;
793- let mut u_0: u32 = 0 ;
794- u_0 = 0 ;
795- while u_0 < nbSeq {
796- let fresh11 = & mut ( * matchlengthCount. offset ( * codePtr_0. offset ( u_0 as isize ) as isize ) ) ;
797- * fresh11 = ( * fresh11) . wrapping_add ( 1 ) ;
798- u_0 = u_0. wrapping_add ( 1 ) ;
791+ let codePtr: * const u8 = ( * seqStorePtr) . mlCode ;
792+ for u in 0 ..nbSeq as usize {
793+ matchlengthCount[ * codePtr. add ( u) as usize ] += 1 ;
799794 }
800- let codePtr_1: * const u8 = ( * seqStorePtr) . llCode ;
801- let mut u_1: u32 = 0 ;
802- u_1 = 0 ;
803- while u_1 < nbSeq {
804- let fresh12 = & mut ( * litlengthCount. offset ( * codePtr_1. offset ( u_1 as isize ) as isize ) ) ;
805- * fresh12 = ( * fresh12) . wrapping_add ( 1 ) ;
806- u_1 = u_1. wrapping_add ( 1 ) ;
795+ let codePtr: * const u8 = ( * seqStorePtr) . llCode ;
796+ for u in 0 ..nbSeq as usize {
797+ litlengthCount[ * codePtr. add ( u) as usize ] += 1 ;
807798 }
799+
808800 if nbSeq >= 2 {
809801 let seq: * const SeqDef = ( * seqStorePtr) . sequencesStart ;
810802 let mut offset1 = ( ( * seq) . offBase ) . wrapping_sub ( ZSTD_REP_NUM as u32 ) ;
@@ -815,13 +807,12 @@ unsafe fn ZDICT_countEStats(
815807 if offset2 >= MAXREPOFFSET as u32 {
816808 offset2 = 0 ;
817809 }
818- let fresh13 = & mut ( * repOffsets. offset ( offset1 as isize ) ) ;
819- * fresh13 = ( * fresh13) . wrapping_add ( 3 ) ;
820- let fresh14 = & mut ( * repOffsets. offset ( offset2 as isize ) ) ;
821- * fresh14 = ( * fresh14) . wrapping_add ( 1 ) ;
810+ repOffsets[ offset1 as usize ] += 3 ;
811+ repOffsets[ offset2 as usize ] += 1 ;
822812 }
823813 }
824814}
815+
825816unsafe fn ZDICT_totalSampleSize ( fileSizes : * const size_t , nbFiles : core:: ffi:: c_uint ) -> size_t {
826817 let mut total = 0 as size_t ;
827818 let mut u: core:: ffi:: c_uint = 0 ;
@@ -936,11 +927,11 @@ unsafe fn ZDICT_analyzeEntropy(
936927 ZDICT_countEStats (
937928 esr,
938929 & params,
939- countLit. as_mut_ptr ( ) ,
940- offcodeCount. as_mut_ptr ( ) ,
941- matchLengthCount. as_mut_ptr ( ) ,
942- litLengthCount. as_mut_ptr ( ) ,
943- repOffset. as_mut_ptr ( ) ,
930+ & mut countLit,
931+ & mut offcodeCount,
932+ & mut matchLengthCount,
933+ & mut litLengthCount,
934+ & mut repOffset,
944935 ( srcBuffer as * const core:: ffi:: c_char ) . add ( pos) as * const core:: ffi:: c_void ,
945936 * fileSizes. offset ( u as isize ) ,
946937 notificationLevel,
0 commit comments