chiark / gitweb /
shapelib refactoring: Make back an Arc, so we can hand out clones
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 22 Mar 2021 01:45:18 +0000 (01:45 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 22 Mar 2021 01:45:18 +0000 (01:45 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/shapelib.rs

index 242558b72d1641c51478240c4ec32638d9cd5a09..762cfe001801f4b38a36a841ff6dcc60a0a75bdd 100644 (file)
@@ -150,7 +150,7 @@ pub struct Item {
   descs: IndexVec<DescId, Html>,
   outline: Outline,
   #[serde(default)]
-  back: Option<Box<dyn OccultedPieceTrait>>,
+  back: Option<Arc<dyn OccultedPieceTrait>>,
 }
 
 #[derive(Debug,Serialize,Deserialize)]
@@ -408,6 +408,7 @@ impl Contents {
       faces.push(face);
     } else if let Some(back_spec) = &idata.group.d.back {
       let p = back_spec.load_occult()?;
+      let p = p.into();
       back = Some(p);
     }
     faces.shrink_to_fit();