vp8: use safer initialisation of partition BoolCoders
[nihav.git] / nihav-duck / src / codecs / vp8.rs
index 2969bfa9e697021fced83f83f935181fa574b94c..de5d32ab79c9d73b6b03892b82e421f8dcfe4fa3 100644 (file)
@@ -1281,13 +1281,10 @@ impl NADecoder for VP8Decoder {
         for start in part_offs[num_partitions..].iter_mut() {
             *start = data_start;
         }
-        let mut bc_src = unsafe {
-                let mut arr: [BoolCoder; 8] = std::mem::MaybeUninit::uninit().assume_init();
-                for (bc, &off) in arr.iter_mut().zip(part_offs.iter()) {
-                    std::ptr::write(bc, BoolCoder::new(&src[off..]).unwrap());
-                }
-                arr
-            };
+        let mut bc_src = Vec::new();
+        for &off in part_offs.iter() {
+            bc_src.push(BoolCoder::new(&src[off..]).unwrap());
+        }
 
         let vinfo = NAVideoInfo::new(self.width, self.height, false, YUV420_FORMAT);
         let ret = supp.pool_u8.get_free();
@@ -1547,6 +1544,7 @@ mod test {
     use crate::duck_register_all_decoders;
     use crate::duck_register_all_demuxers;
 
+    // all samples are from the official VP8 test bitstreams set
     fn test_vp8_core(name: &str, hash: [u32; 4]) {
         let mut dmx_reg = RegisteredDemuxers::new();
         duck_register_all_demuxers(&mut dmx_reg);