From: Ian Jackson Date: Mon, 22 Mar 2021 02:14:29 +0000 (+0000) Subject: Make PieceTrait load occult return an Arc for occult X-Git-Tag: otter-0.5.0~518 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=607cd222cd2a551ecf3ffc9b67a3b2bfb9b601f1;p=otter.git Make PieceTrait load occult return an Arc for occult That will save cloning, in case it's expensive. Signed-off-by: Ian Jackson --- diff --git a/src/gamestate.rs b/src/gamestate.rs index 237e1d6f..18536042 100644 --- a/src/gamestate.rs +++ b/src/gamestate.rs @@ -192,7 +192,7 @@ pub struct PieceSpecLoaded { pub occultable: PieceSpecLoadedOccultable, } pub type PieceSpecLoadedOccultable = - Option<(OccultIlkName, Box)>; + Option<(OccultIlkName, Arc)>; #[typetag::serde(tag="type")] pub trait PieceSpec: Debug + Sync + Send + 'static { diff --git a/src/occultilks.rs b/src/occultilks.rs index 0a9dc861..1d2567e6 100644 --- a/src/occultilks.rs +++ b/src/occultilks.rs @@ -18,7 +18,7 @@ pub struct OccultIlkName(pub Arc); #[derive(Debug,Serialize,Deserialize)] pub struct OccultIlkData { - pub p_occ: Box, + pub p_occ: Arc, } type Id = OccultIlkId; diff --git a/src/shapelib.rs b/src/shapelib.rs index b06a9ab4..747a372d 100644 --- a/src/shapelib.rs +++ b/src/shapelib.rs @@ -410,12 +410,12 @@ impl Contents { }; svgd }; - let it = Box::new(ItemOccultable { + let it = Arc::new(ItemOccultable { svgd, xform: occ.xform.clone(), desc: occ.desc.clone(), outline: occ.outline.clone(), - }) as Box; + }) as Arc; Some((OccultIlkName(name), it)) }, };