aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/worker.rs
diff options
context:
space:
mode:
authorchickenleaf <lashwinib@gmail.com>2024-10-18 19:12:43 +0530
committerGitHub <noreply@github.com>2024-10-18 13:42:43 +0000
commitaf6154cf630bd498f8b5afbd8a321eb4a45463b6 (patch)
tree364dcf5c2d2cfd247716eed34bc04d0aa136c263 /components/script/dom/worker.rs
parentfde8d72acabb6f8314efe0e66312c02a488a7613 (diff)
downloadservo-af6154cf630bd498f8b5afbd8a321eb4a45463b6.tar.gz
servo-af6154cf630bd498f8b5afbd8a321eb4a45463b6.zip
More files with CanGc fixes (#33892)
* More files with CanGc fixes Signed-off-by: L Ashwin B <lashwinib@gmail.com> * removed the can_gc inside !task Signed-off-by: L Ashwin B <lashwinib@gmail.com> --------- Signed-off-by: L Ashwin B <lashwinib@gmail.com>
Diffstat (limited to 'components/script/dom/worker.rs')
-rw-r--r--components/script/dom/worker.rs18
1 files changed, 15 insertions, 3 deletions
diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs
index 850276ae2c0..cfbec632303 100644
--- a/components/script/dom/worker.rs
+++ b/components/script/dom/worker.rs
@@ -97,7 +97,11 @@ impl Worker {
*self.context_for_interrupt.borrow_mut() = Some(cx);
}
- pub fn handle_message(address: TrustedWorkerAddress, data: StructuredSerializedData) {
+ pub fn handle_message(
+ address: TrustedWorkerAddress,
+ data: StructuredSerializedData,
+ can_gc: CanGc,
+ ) {
let worker = address.root();
if worker.is_terminated() {
@@ -109,10 +113,18 @@ impl Worker {
let _ac = enter_realm(target);
rooted!(in(*GlobalScope::get_cx()) let mut message = UndefinedValue());
if let Ok(ports) = structuredclone::read(&global, data, message.handle_mut()) {
- MessageEvent::dispatch_jsval(target, &global, message.handle(), None, None, ports);
+ MessageEvent::dispatch_jsval(
+ target,
+ &global,
+ message.handle(),
+ None,
+ None,
+ ports,
+ can_gc,
+ );
} else {
// Step 4 of the "port post message steps" of the implicit messageport, fire messageerror.
- MessageEvent::dispatch_error(target, &global);
+ MessageEvent::dispatch_error(target, &global, can_gc);
}
}