From 73336f1cf129ac11bcb6d761b263dea34cb4b0ef Mon Sep 17 00:00:00 2001 From: Khyber Sen Date: Mon, 22 Apr 2024 18:25:12 -0700 Subject: [PATCH] `struct Rav1dTaskContext`: Initialize fields with `Default::default()` except for `scratch`, which is a `union` and a WIP to make safe. --- src/internal.rs | 11 +++++------ src/refmvs.rs | 12 ++++++++++++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/internal.rs b/src/internal.rs index ecedf6ad6..009a8dcbc 100644 --- a/src/internal.rs +++ b/src/internal.rs @@ -98,7 +98,6 @@ use std::ops::Index; use std::ops::IndexMut; use std::ops::Range; use std::ops::Sub; -use std::ptr; use std::sync::atomic::AtomicBool; use std::sync::atomic::AtomicI32; use std::sync::atomic::AtomicU32; @@ -1070,22 +1069,22 @@ pub(crate) struct Rav1dTaskContext { } impl Rav1dTaskContext { - pub(crate) unsafe fn new(task_thread: Arc) -> Self { + pub(crate) fn new(task_thread: Arc) -> Self { Self { ts: 0, b: Default::default(), l: Default::default(), a: 0, - rt: mem::zeroed(), + rt: Default::default(), cf: Default::default(), al_pal: Default::default(), pal_sz_uv: Default::default(), - scratch: mem::zeroed(), - warpmv: mem::zeroed(), + scratch: unsafe { mem::zeroed() }, + warpmv: Default::default(), lf_mask: None, top_pre_cdef_toggle: 0, cur_sb_cdef_idx: 0, - tl_4x4_filter: mem::zeroed(), + tl_4x4_filter: Filter2d::Regular8Tap, // 0 frame_thread: Rav1dTaskContext_frame_thread { pass: 0 }, task_thread, } diff --git a/src/refmvs.rs b/src/refmvs.rs index a53b48b4d..11a7983b3 100644 --- a/src/refmvs.rs +++ b/src/refmvs.rs @@ -224,6 +224,7 @@ pub(crate) struct RefMvsFrame { pub n_frame_threads: u32, } +#[derive(Default)] #[repr(C)] pub struct refmvs_tile_range { pub start: c_int, @@ -246,6 +247,17 @@ pub(crate) struct refmvs_tile { pub tile_row: refmvs_tile_range, } +impl Default for refmvs_tile { + fn default() -> Self { + Self { + r: [Default::default(); 37], + rp_proj: Default::default(), + tile_col: Default::default(), + tile_row: Default::default(), + } + } +} + #[derive(Copy, Clone, Default)] #[repr(C)] pub struct refmvs_candidate {