From d110147d627bb6d1237a161303cf185e2fa795cf Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Wed, 13 May 2026 21:18:36 +0200 Subject: [PATCH] drivers/graphics/driver-graphics: Introduce KmsObjects::remove helper --- .../driver-graphics/src/kms/objects.rs | 22 +++++++++++-------- .../driver-graphics/src/kms/properties.rs | 10 +-------- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/drivers/graphics/driver-graphics/src/kms/objects.rs b/drivers/graphics/driver-graphics/src/kms/objects.rs index 467f6f8ed0..156b32af2e 100644 --- a/drivers/graphics/driver-graphics/src/kms/objects.rs +++ b/drivers/graphics/driver-graphics/src/kms/objects.rs @@ -58,6 +58,18 @@ impl KmsObjects { } } + pub(super) fn remove>(&mut self, id: KmsObjectId) -> Result<()> { + let Some(object) = self.objects.get(&id) else { + return Err(Error::new(ENOENT)); + }; + let Some(_) = U::try_from_object(object) else { + return Err(Error::new(ENOENT)); + }; + self.objects.remove(&id).unwrap(); + + Ok(()) + } + pub(crate) fn object_type(&self, id: KmsObjectId) -> Result { let object = self.objects.get(&id).ok_or(Error::new(ENOENT))?; Ok(object.object_type()) @@ -106,15 +118,7 @@ impl KmsObjects { } pub fn remove_framebuffer(&mut self, id: KmsObjectId) -> Result<()> { - let Some(object) = self.objects.get(&id) else { - return Err(Error::new(ENOENT)); - }; - let KmsObject::Framebuffer(_) = object else { - return Err(Error::new(ENOENT)); - }; - self.objects.remove(&id).unwrap(); - - Ok(()) + self.remove::>(id) } pub fn fb_ids(&self) -> &[KmsObjectId] { diff --git a/drivers/graphics/driver-graphics/src/kms/properties.rs b/drivers/graphics/driver-graphics/src/kms/properties.rs index 01bf715e96..3a0e8bc5fc 100644 --- a/drivers/graphics/driver-graphics/src/kms/properties.rs +++ b/drivers/graphics/driver-graphics/src/kms/properties.rs @@ -81,15 +81,7 @@ impl KmsObjects { } pub fn remove_blob(&mut self, id: KmsObjectId) -> Result<()> { - let Some(object) = self.objects.get(&id) else { - return Err(Error::new(ENOENT)); - }; - let KmsObject::Blob(_) = object else { - return Err(Error::new(ENOENT)); - }; - self.objects.remove(&id).unwrap(); - - Ok(()) + self.remove::(id) } pub fn get_blob(&self, id: KmsObjectId) -> Result<&[u8]> {