( zolti | 2025. 10. 17., p – 16:19 )

Szerkesztve: 2025. 10. 17., p – 16:31

Végre van egy Memory Safety DE. Akkor ez garantáltan mentes lesz minden problémától. 5,3 Mb az src könyvtár egész biztos vagyok benne hogy csak Rust -al lehetett biztonságosra megírni.
src/pw_utils.rs:

unsafe {
    let spa_buffer = (*buffer).buffer;

    let fd = (*(*spa_buffer).datas).fd;
    let dmabuf = self.inner.borrow().dmabufs[&fd].clone();

    match render_to_dmabuf(
        renderer,
        dmabuf,
        size,
        scale,
        Transform::Normal,
        elements.iter().rev(),
    ) {
        Ok(sync_point) => {
            mark_buffer_as_good(pw_buffer, &mut self.sequence_counter);
            trace!("queueing buffer with seq={}", self.sequence_counter);
            self.queue_after_sync(pw_buffer, sync_point);
            true
        }
        Err(err) => {
            warn!("error rendering to dmabuf: {err:?}");
            return_unused_buffer(&self.stream, pw_buffer);
            false
        }
    }
}

Nem értek a Rust-hoz, de nagyon kíváncsi lennék mi történik ha nincs 'self.inner.borrow().dmabufs[&fd]'  vagy a legelső sorban (*buffer).buffer