aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/messageevent.rs
diff options
context:
space:
mode:
authorPatrick Shaughnessy <pshaughn@comcast.net>2020-02-05 18:32:42 -0500
committerPatrick Shaughnessy <pshaughn@comcast.net>2020-02-14 11:34:51 -0500
commite0b768c6cc409e14cd81a749c64ce4a3711aeb75 (patch)
tree7831d1018aa447ceccda5ee717fcc27ad975d3fa /components/script/dom/messageevent.rs
parent4f36472b6fed75568c651cbbeecc6678791018a9 (diff)
downloadservo-e0b768c6cc409e14cd81a749c64ce4a3711aeb75.tar.gz
servo-e0b768c6cc409e14cd81a749c64ce4a3711aeb75.zip
alphabetized frozen supported entry types on the global, avoid moving Heap into Option
Diffstat (limited to 'components/script/dom/messageevent.rs')
-rw-r--r--components/script/dom/messageevent.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/components/script/dom/messageevent.rs b/components/script/dom/messageevent.rs
index 62d7789e7e5..447c2f3ccd1 100644
--- a/components/script/dom/messageevent.rs
+++ b/components/script/dom/messageevent.rs
@@ -255,10 +255,13 @@ impl MessageEventMethods for MessageEvent {
.collect();
let frozen_ports = to_frozen_array(ports.as_slice(), cx);
- // Cache the Js value.
- let heap_val = Heap::default();
- heap_val.set(frozen_ports);
- *self.frozen_ports.borrow_mut() = Some(heap_val);
+ // Safety: need to create the Heap value in its final memory location before setting it.
+ *self.frozen_ports.borrow_mut() = Some(Heap::default());
+ self.frozen_ports
+ .borrow()
+ .as_ref()
+ .unwrap()
+ .set(frozen_ports);
frozen_ports
}