mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Wrap SharedLayoutContext::canvas_layers_sender in a Mutex.
This commit is contained in:
parent
8fc75704c9
commit
e9b77628ce
3 changed files with 3 additions and 4 deletions
|
@ -108,7 +108,7 @@ pub struct SharedLayoutContext {
|
|||
pub new_animations_sender: Mutex<Sender<Animation>>,
|
||||
|
||||
/// A channel to send canvas renderers to paint task, in order to correctly paint the layers
|
||||
pub canvas_layers_sender: Sender<(LayerId, IpcSender<CanvasMsg>)>,
|
||||
pub canvas_layers_sender: Mutex<Sender<(LayerId, IpcSender<CanvasMsg>)>>,
|
||||
|
||||
/// The visible rects for each layer, as reported to us by the compositor.
|
||||
pub visible_rects: Arc<HashMap<LayerId, Rect<Au>, DefaultState<FnvHasher>>>,
|
||||
|
@ -123,7 +123,6 @@ pub struct SharedLayoutContext {
|
|||
// FIXME(#6569) This implementations is unsound:
|
||||
// XXX UNSOUND!!! for image_cache_task
|
||||
// XXX UNSOUND!!! for stylist
|
||||
// XXX UNSOUND!!! for canvas_layers_sender
|
||||
#[allow(unsafe_code)]
|
||||
unsafe impl Sync for SharedLayoutContext {}
|
||||
|
||||
|
|
|
@ -1150,7 +1150,7 @@ impl FragmentDisplayListBuilding for Fragment {
|
|||
let data = receiver.recv().unwrap();
|
||||
|
||||
// Propagate the layer and the renderer to the paint task.
|
||||
layout_context.shared.canvas_layers_sender.send(
|
||||
layout_context.shared.canvas_layers_sender.lock().unwrap().send(
|
||||
(layer_id, (*ipc_renderer).clone())).unwrap();
|
||||
|
||||
data
|
||||
|
|
|
@ -456,7 +456,7 @@ impl LayoutTask {
|
|||
viewport_size: rw_data.viewport_size.clone(),
|
||||
screen_size_changed: screen_size_changed,
|
||||
font_cache_task: Mutex::new(self.font_cache_task.clone()),
|
||||
canvas_layers_sender: self.canvas_layers_sender.clone(),
|
||||
canvas_layers_sender: Mutex::new(self.canvas_layers_sender.clone()),
|
||||
stylist: &*rw_data.stylist,
|
||||
url: (*url).clone(),
|
||||
visible_rects: rw_data.visible_rects.clone(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue