1
0
Fork 0
forked from wry/wry

it: simplify tracking of deleted objects

This commit is contained in:
Julian Orth 2022-05-03 17:31:44 +02:00
parent ae34a65efe
commit fd027d9a5a
17 changed files with 57 additions and 154 deletions

View file

@ -2,11 +2,8 @@ use {
crate::{
format::Format,
it::{
test_error::TestError,
test_ifs::test_shm_buffer::TestShmBuffer,
test_mem::TestMem,
test_object::{Deleted, TestObject},
test_transport::TestTransport,
test_error::TestError, test_ifs::test_shm_buffer::TestShmBuffer, test_mem::TestMem,
test_object::TestObject, test_transport::TestTransport,
},
utils::clonecell::CloneCell,
wire::{wl_shm_pool::*, WlShmPoolId},
@ -19,7 +16,6 @@ pub struct TestShmPool {
pub tran: Rc<TestTransport>,
pub mem: CloneCell<Rc<TestMem>>,
pub destroyed: Cell<bool>,
pub deleted: Deleted,
}
impl TestShmPool {
@ -45,10 +41,8 @@ impl TestShmPool {
mem,
released: Cell::new(true),
destroyed: Cell::new(false),
deleted: Default::default(),
});
self.tran.add_obj(buffer.clone())?;
self.deleted.check()?;
self.tran.send(CreateBuffer {
self_id: self.id,
id: buffer.id,
@ -57,18 +51,17 @@ impl TestShmPool {
height,
stride,
format: format.wl_id.unwrap_or(format.drm),
});
})?;
Ok(buffer)
}
pub fn resize(&self, size: usize) -> Result<(), TestError> {
let mem = self.mem.get().grow(size)?;
self.mem.set(mem);
self.deleted.check()?;
self.tran.send(Resize {
self_id: self.id,
size: size as _,
});
})?;
Ok(())
}
@ -76,8 +69,7 @@ impl TestShmPool {
if self.destroyed.replace(true) {
return Ok(());
}
self.deleted.check()?;
self.tran.send(Destroy { self_id: self.id });
self.tran.send(Destroy { self_id: self.id })?;
Ok(())
}
}