diff options
author | Josh Matthews <josh@joshmatthews.net> | 2024-10-22 05:35:20 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-22 09:35:20 +0000 |
commit | 575e8855294a9ee2094b110a7c1fea868e69251e (patch) | |
tree | 261ab3e890b9125e9e08f97366de34213eb67467 /components/script/dom/gpudevice.rs | |
parent | edc304854ff18bc686f8e2adc6cb64cbad181598 (diff) | |
download | servo-575e8855294a9ee2094b110a7c1fea868e69251e.tar.gz servo-575e8855294a9ee2094b110a7c1fea868e69251e.zip |
Mark promise creation methods with CanGc (#33928)
* Add CanGc annotations to promise constructor.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Propagate CanGc arguments for Promise::new_in_current_realm.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Fix out-of-order entries.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Propagate CanGc from Promise::new.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Suppress clippy warning.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Formatting.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
---------
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Diffstat (limited to 'components/script/dom/gpudevice.rs')
-rw-r--r-- | components/script/dom/gpudevice.rs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/components/script/dom/gpudevice.rs b/components/script/dom/gpudevice.rs index 840f6991292..51361118f8d 100644 --- a/components/script/dom/gpudevice.rs +++ b/components/script/dom/gpudevice.rs @@ -153,7 +153,7 @@ impl GPUDevice { let queue = GPUQueue::new(global, channel.clone(), queue); let limits = GPUSupportedLimits::new(global, limits); let features = GPUSupportedFeatures::Constructor(global, None, features, can_gc).unwrap(); - let lost_promise = Promise::new(global); + let lost_promise = Promise::new(global, can_gc); let device = reflect_dom_object( Box::new(GPUDevice::new_inherited( channel, @@ -440,8 +440,9 @@ impl GPUDeviceMethods for GPUDevice { &self, descriptor: RootedTraceableBox<GPUShaderModuleDescriptor>, comp: InRealm, + can_gc: CanGc, ) -> DomRoot<GPUShaderModule> { - GPUShaderModule::create(self, descriptor, comp) + GPUShaderModule::create(self, descriptor, comp, can_gc) } /// <https://gpuweb.github.io/gpuweb/#dom-gpudevice-createcomputepipeline> @@ -463,8 +464,9 @@ impl GPUDeviceMethods for GPUDevice { &self, descriptor: &GPUComputePipelineDescriptor, comp: InRealm, + can_gc: CanGc, ) -> Rc<Promise> { - let promise = Promise::new_in_current_realm(comp); + let promise = Promise::new_in_current_realm(comp, can_gc); let sender = response_async(&promise, self); GPUComputePipeline::create(self, descriptor, Some(sender)); promise @@ -508,9 +510,10 @@ impl GPUDeviceMethods for GPUDevice { &self, descriptor: &GPURenderPipelineDescriptor, comp: InRealm, + can_gc: CanGc, ) -> Fallible<Rc<Promise>> { let (implicit_ids, desc) = self.parse_render_pipeline(descriptor)?; - let promise = Promise::new_in_current_realm(comp); + let promise = Promise::new_in_current_realm(comp, can_gc); let sender = response_async(&promise, self); GPURenderPipeline::create(self, implicit_ids, desc, Some(sender))?; Ok(promise) @@ -540,8 +543,8 @@ impl GPUDeviceMethods for GPUDevice { } /// <https://gpuweb.github.io/gpuweb/#dom-gpudevice-poperrorscope> - fn PopErrorScope(&self, comp: InRealm) -> Rc<Promise> { - let promise = Promise::new_in_current_realm(comp); + fn PopErrorScope(&self, comp: InRealm, can_gc: CanGc) -> Rc<Promise> { + let promise = Promise::new_in_current_realm(comp, can_gc); let sender = response_async(&promise, self); if self .channel |