Only construct a channel if necessary when building a fragment for a canvas.

This commit is contained in:
Ms2ger 2015-10-26 11:22:36 +01:00
parent 4e015b5378
commit a5a4ef7d70

View file

@ -1157,11 +1157,11 @@ impl FragmentDisplayListBuilding for Fragment {
let height = canvas_fragment_info.replaced_image_fragment_info let height = canvas_fragment_info.replaced_image_fragment_info
.computed_block_size.map_or(0, |h| h.to_px() as usize); .computed_block_size.map_or(0, |h| h.to_px() as usize);
if width > 0 && height > 0 { if width > 0 && height > 0 {
let (sender, receiver) = ipc::channel::<IpcSharedMemory>().unwrap();
let layer_id = self.layer_id(); let layer_id = self.layer_id();
let canvas_data = match canvas_fragment_info.ipc_renderer { let canvas_data = match canvas_fragment_info.ipc_renderer {
Some(ref ipc_renderer) => { Some(ref ipc_renderer) => {
let ipc_renderer = ipc_renderer.lock().unwrap(); let ipc_renderer = ipc_renderer.lock().unwrap();
let (sender, receiver) = ipc::channel().unwrap();
ipc_renderer.send(CanvasMsg::FromLayout( ipc_renderer.send(CanvasMsg::FromLayout(
FromLayoutMsg::SendPixelContents(sender))).unwrap(); FromLayoutMsg::SendPixelContents(sender))).unwrap();
let data = receiver.recv().unwrap(); let data = receiver.recv().unwrap();