core: Extract `Graphic::drawing`
That returns a non-`Option` `Drawing`, and has no `.unwrap()`s.
This commit is contained in:
parent
7dfc5b6e2e
commit
fb7ba9c9a0
|
@ -93,6 +93,12 @@ impl<'gc> Graphic<'gc> {
|
||||||
},
|
},
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn drawing(&self, gc_context: MutationContext<'gc, '_>) -> RefMut<'_, Drawing> {
|
||||||
|
RefMut::map(self.0.write(gc_context), |w| {
|
||||||
|
w.drawing.get_or_insert_with(Drawing::new)
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'gc> TDisplayObject<'gc> for Graphic<'gc> {
|
impl<'gc> TDisplayObject<'gc> for Graphic<'gc> {
|
||||||
|
@ -235,12 +241,7 @@ impl<'gc> TDisplayObject<'gc> for Graphic<'gc> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn as_drawing(&self, gc_context: MutationContext<'gc, '_>) -> Option<RefMut<'_, Drawing>> {
|
fn as_drawing(&self, gc_context: MutationContext<'gc, '_>) -> Option<RefMut<'_, Drawing>> {
|
||||||
let mut write = self.0.write(gc_context);
|
Some(self.drawing(gc_context))
|
||||||
if write.drawing.is_none() {
|
|
||||||
write.drawing = Some(Drawing::new());
|
|
||||||
}
|
|
||||||
|
|
||||||
Some(RefMut::map(write, |m| m.drawing.as_mut().unwrap()))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue