@@ -716,18 +716,19 @@ unsafe fn ZDICT_trainBuffer_legacy(
716716 free ( filePos as * mut core:: ffi:: c_void ) ;
717717 result
718718}
719- unsafe fn ZDICT_fillNoise ( buffer : * mut core:: ffi:: c_void , length : size_t ) {
720- let prime1 = 2654435761 as core:: ffi:: c_uint ;
721- let prime2 = 2246822519 as core:: ffi:: c_uint ;
719+
720+ fn fill_noise ( buffer : & mut [ u8 ] ) {
721+ const prime1: u32 = 2654435761 ;
722+ const prime2: u32 = 2246822519 ;
723+
722724 let mut acc = prime1;
723- let mut p = 0 ;
724- p = 0 ;
725- while p < length {
725+
726+ for v in buffer. iter_mut ( ) {
726727 acc = acc. wrapping_mul ( prime2) ;
727- * ( buffer as * mut core:: ffi:: c_uchar ) . add ( p) = ( acc >> 21 ) as core:: ffi:: c_uchar ;
728- p = p. wrapping_add ( 1 ) ;
728+ * v = ( acc >> 21 ) as u8 ;
729729 }
730730}
731+
731732const MAXREPOFFSET : core:: ffi:: c_int = 1024 ;
732733unsafe fn ZDICT_countEStats (
733734 esr : EStats_ress_t ,
@@ -1606,10 +1607,12 @@ pub unsafe extern "C" fn ZDICT_trainFromBuffer_legacy(
16061607 return Error :: memory_allocation. to_error_code ( ) ;
16071608 }
16081609 memcpy ( newBuff, samplesBuffer, sBuffSize) ;
1609- ZDICT_fillNoise (
1610- ( newBuff as * mut core:: ffi:: c_char ) . add ( sBuffSize) as * mut core:: ffi:: c_void ,
1610+
1611+ fill_noise ( core:: slice:: from_raw_parts_mut (
1612+ newBuff. cast :: < u8 > ( ) . byte_add ( sBuffSize) ,
16111613 NOISELENGTH as size_t ,
1612- ) ;
1614+ ) ) ;
1615+
16131616 result = ZDICT_trainFromBuffer_unsafe_legacy (
16141617 dictBuffer,
16151618 dictBufferCapacity,
@@ -1714,7 +1717,7 @@ mod test {
17141717 #[ test]
17151718 fn test_fill_noise ( ) {
17161719 let mut buf = vec ! [ 0u8 ; 16 ] ;
1717- unsafe { ZDICT_fillNoise ( buf . as_mut_ptr ( ) . cast ( ) , buf. len ( ) ) } ;
1720+ fill_noise ( & mut buf) ;
17181721 assert_eq ! (
17191722 buf,
17201723 [ 226 , 51 , 247 , 105 , 221 , 225 , 137 , 112 , 5 , 188 , 15 , 79 , 183 , 243 , 110 , 209 ]
0 commit comments