diff --git a/crates/renderer/src/images.rs b/crates/renderer/src/images.rs index 674e021..2974a33 100644 --- a/crates/renderer/src/images.rs +++ b/crates/renderer/src/images.rs @@ -2,7 +2,7 @@ use std::{borrow::Cow, collections::HashMap, sync::Arc}; use crate::{ define_device_owned_handle, - device::{self, DeviceOwned, QueueFlags}, + device::{DeviceOwned, QueueFlags}, }; use super::Device; @@ -237,8 +237,8 @@ impl Image { self.size.depth } - fn get_parent(self: Arc) -> Arc { - self.parent.clone().unwrap_or(self) + fn get_parent(self: &Arc) -> Arc { + self.parent.clone().unwrap_or_else(|| self.clone()) } fn get_alloc(&self) -> Option<&vk_mem::Allocation> { @@ -247,7 +247,7 @@ impl Image { .or(self.parent.as_ref().and_then(|image| image.get_alloc())) } - pub unsafe fn get_alias(self: Arc, desc: ImageDesc) -> VkResult> { + pub unsafe fn get_alias(self: &Arc, desc: ImageDesc) -> VkResult> { self.get_parent().get_alias_inner(desc) }