aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2016-12-06 10:31:52 -1000
committerAnthony Ramine <n.oxyde@gmail.com>2016-12-06 13:15:14 -1000
commitb40681e2312a2c3fd3c34f0f70760c768dda0753 (patch)
tree23a670e38302651de73b0b25b917b4906f0066e7 /components/script
parente8c9c12b6ef39e66173bd5c5f4b88e7e22b97edb (diff)
downloadservo-b40681e2312a2c3fd3c34f0f70760c768dda0753.tar.gz
servo-b40681e2312a2c3fd3c34f0f70760c768dda0753.zip
Make the impl of JSTraceable for LayoutRPC sound with a Send bound
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/bindings/trace.rs3
-rw-r--r--components/script/dom/window.rs4
2 files changed, 4 insertions, 3 deletions
diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs
index cb5deabd3f4..b0d4621e36b 100644
--- a/components/script/dom/bindings/trace.rs
+++ b/components/script/dom/bindings/trace.rs
@@ -391,7 +391,8 @@ unsafe impl<T> JSTraceable for IpcSender<T> where T: Deserialize + Serialize {
}
}
-unsafe impl JSTraceable for Box<LayoutRPC + 'static> {
+// Safe thanks to the Send bound.
+unsafe impl JSTraceable for Box<LayoutRPC + Send + 'static> {
#[inline]
unsafe fn trace(&self, _: *mut JSTracer) {
// Do nothing
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs
index 4b4b74b846e..51436a3c793 100644
--- a/components/script/dom/window.rs
+++ b/components/script/dom/window.rs
@@ -196,7 +196,7 @@ pub struct Window {
/// A handle to perform RPC calls into the layout, quickly.
#[ignore_heap_size_of = "trait objects are hard"]
- layout_rpc: Box<LayoutRPC + 'static>,
+ layout_rpc: Box<LayoutRPC + Send + 'static>,
/// The current size of the window, in pixels.
window_size: Cell<Option<WindowSizeData>>,
@@ -1538,7 +1538,7 @@ impl Window {
parent_info: Option<(PipelineId, FrameType)>,
window_size: Option<WindowSizeData>)
-> Root<Window> {
- let layout_rpc: Box<LayoutRPC> = {
+ let layout_rpc: Box<LayoutRPC + Send> = {
let (rpc_send, rpc_recv) = channel();
layout_chan.send(Msg::GetRPC(rpc_send)).unwrap();
rpc_recv.recv().unwrap()