mirror of
https://github.com/servo/servo.git
synced 2025-08-04 21:20:23 +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>>,
|
pub new_animations_sender: Mutex<Sender<Animation>>,
|
||||||
|
|
||||||
/// A channel to send canvas renderers to paint task, in order to correctly paint the layers
|
/// 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.
|
/// The visible rects for each layer, as reported to us by the compositor.
|
||||||
pub visible_rects: Arc<HashMap<LayerId, Rect<Au>, DefaultState<FnvHasher>>>,
|
pub visible_rects: Arc<HashMap<LayerId, Rect<Au>, DefaultState<FnvHasher>>>,
|
||||||
|
@ -123,7 +123,6 @@ pub struct SharedLayoutContext {
|
||||||
// FIXME(#6569) This implementations is unsound:
|
// FIXME(#6569) This implementations is unsound:
|
||||||
// XXX UNSOUND!!! for image_cache_task
|
// XXX UNSOUND!!! for image_cache_task
|
||||||
// XXX UNSOUND!!! for stylist
|
// XXX UNSOUND!!! for stylist
|
||||||
// XXX UNSOUND!!! for canvas_layers_sender
|
|
||||||
#[allow(unsafe_code)]
|
#[allow(unsafe_code)]
|
||||||
unsafe impl Sync for SharedLayoutContext {}
|
unsafe impl Sync for SharedLayoutContext {}
|
||||||
|
|
||||||
|
|
|
@ -1150,7 +1150,7 @@ impl FragmentDisplayListBuilding for Fragment {
|
||||||
let data = receiver.recv().unwrap();
|
let data = receiver.recv().unwrap();
|
||||||
|
|
||||||
// Propagate the layer and the renderer to the paint task.
|
// 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();
|
(layer_id, (*ipc_renderer).clone())).unwrap();
|
||||||
|
|
||||||
data
|
data
|
||||||
|
|
|
@ -456,7 +456,7 @@ impl LayoutTask {
|
||||||
viewport_size: rw_data.viewport_size.clone(),
|
viewport_size: rw_data.viewport_size.clone(),
|
||||||
screen_size_changed: screen_size_changed,
|
screen_size_changed: screen_size_changed,
|
||||||
font_cache_task: Mutex::new(self.font_cache_task.clone()),
|
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,
|
stylist: &*rw_data.stylist,
|
||||||
url: (*url).clone(),
|
url: (*url).clone(),
|
||||||
visible_rects: rw_data.visible_rects.clone(),
|
visible_rects: rw_data.visible_rects.clone(),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue