fix clippy warnings
[nihav.git] / nihav-realmedia / src / codecs / rv60codes.rs
index 43bdce7442757baef3db63d296f9155a72eb5df5..390458c1174d36608e2300edd5087ba2ec5b82ac 100644 (file)
@@ -98,33 +98,37 @@ pub struct RV60Codebooks {
 
 impl RV60Codebooks {
     pub fn init() -> Self {
-        let mut cbp8_cb:  [[Codebook<u16>; 4];  NUM_INTER_SETS];
-        let mut cbp16_cb: [[Codebook<u16>; 12]; NUM_INTER_SETS];
+        let cbp8_cb;
+        let cbp16_cb;
         unsafe {
-            cbp8_cb = mem::uninitialized();
-            cbp16_cb = mem::uninitialized();
+            let mut ucbp8_cb:  mem::MaybeUninit::<[[Codebook<u16>; 4];  NUM_INTER_SETS]> = mem::MaybeUninit::uninit();
+            let mut ucbp16_cb: mem::MaybeUninit::<[[Codebook<u16>; 12]; NUM_INTER_SETS]> = mem::MaybeUninit::uninit();
             for set_no in 0..NUM_INTER_SETS {
                 for i in 0..4 {
                     let mut cbr = RV60CodebookDescReader::new(&RV60_CBP8_TABS[set_no][i], NUM_CBP_ENTRIES, false);
-                    ptr::write(&mut cbp8_cb[set_no][i], Codebook::new(&mut cbr, CodebookMode::MSB).unwrap());
+                    ptr::write(&mut (*ucbp8_cb.as_mut_ptr())[set_no][i], Codebook::new(&mut cbr, CodebookMode::MSB).unwrap());
                 }
                 for i in 0..12 {
                     let mut cbr = RV60CodebookDescReader::new(&RV60_CBP16_TABS[set_no][i], NUM_CBP_ENTRIES, false);
-                    ptr::write(&mut cbp16_cb[set_no][i], Codebook::new(&mut cbr, CodebookMode::MSB).unwrap());
+                    ptr::write(&mut (*ucbp16_cb.as_mut_ptr())[set_no][i], Codebook::new(&mut cbr, CodebookMode::MSB).unwrap());
                 }
             }
+            cbp8_cb  = ucbp8_cb.assume_init();
+            cbp16_cb = ucbp16_cb.assume_init();
         }
-        let mut intra_coeff_cb: [CoeffCodebooks; NUM_INTRA_SETS];
-        let mut inter_coeff_cb: [CoeffCodebooks; NUM_INTER_SETS];
+        let intra_coeff_cb;
+        let inter_coeff_cb;
         unsafe {
-            intra_coeff_cb = mem::uninitialized();
+            let mut uintra_coeff_cb: mem::MaybeUninit::<[CoeffCodebooks; NUM_INTRA_SETS]> = mem::MaybeUninit::uninit();
             for set_no in 0..NUM_INTRA_SETS {
-                ptr::write(&mut intra_coeff_cb[set_no], CoeffCodebooks::init(set_no, true));
+                ptr::write(&mut (*uintra_coeff_cb.as_mut_ptr())[set_no], CoeffCodebooks::init(set_no, true));
             }
-            inter_coeff_cb = mem::uninitialized();
+            let mut uinter_coeff_cb: mem::MaybeUninit::<[CoeffCodebooks; NUM_INTER_SETS]> = mem::MaybeUninit::uninit();
             for set_no in 0..NUM_INTER_SETS {
-                ptr::write(&mut inter_coeff_cb[set_no], CoeffCodebooks::init(set_no, false));
+                ptr::write(&mut (*uinter_coeff_cb.as_mut_ptr())[set_no], CoeffCodebooks::init(set_no, false));
             }
+            intra_coeff_cb = uintra_coeff_cb.assume_init();
+            inter_coeff_cb = uinter_coeff_cb.assume_init();
         }
         Self { cbp8_cb, cbp16_cb, intra_coeff_cb, inter_coeff_cb }
     }
@@ -165,7 +169,7 @@ fn quant(val: i16, q: i16) -> i16 { (val * q + 8) >> 4 }
 
 fn decode_2x2_dc(br: &mut BitReader, cb: &Codebook<u16>, coeffs: &mut [i16], stride: usize, block2: bool, dsc: usize, q_dc: i16, q_ac: i16) -> DecoderResult<()> {
     if dsc == 0 { return Ok(()); }
-    let lx = RV60_DSC_TO_LX[dsc as usize];
+    let lx = RV60_DSC_TO_LX[dsc];
     let l0 = ((lx >>  0) & 0xFF) as i16;
     let l1 = ((lx >>  8) & 0xFF) as i16;
     let l2 = ((lx >> 16) & 0xFF) as i16;
@@ -183,7 +187,7 @@ fn decode_2x2_dc(br: &mut BitReader, cb: &Codebook<u16>, coeffs: &mut [i16], str
 }
 fn decode_2x2(br: &mut BitReader, cb: &Codebook<u16>, coeffs: &mut [i16], stride: usize, block2: bool, dsc: usize, q_ac: i16) -> DecoderResult<()> {
     if dsc == 0 { return Ok(()); }
-    let lx = RV60_DSC_TO_LX[dsc as usize];
+    let lx = RV60_DSC_TO_LX[dsc];
     let l0 = ((lx >>  0) & 0xFF) as i16;
     let l1 = ((lx >>  8) & 0xFF) as i16;
     let l2 = ((lx >> 16) & 0xFF) as i16;