diff options
author | Samson <16504129+sagudev@users.noreply.github.com> | 2023-08-04 12:17:43 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-04 10:17:43 +0000 |
commit | 9514f670d12b4d92514c1402d686e694f3f234a5 (patch) | |
tree | cd847449b332ac27b6018fbe8a83a248af020c5a /components/script/dom/webglrenderingcontext.rs | |
parent | 66e0d543cfbaecb08ade2e071d6575f9f72f4dbb (diff) | |
download | servo-9514f670d12b4d92514c1402d686e694f3f234a5.tar.gz servo-9514f670d12b4d92514c1402d686e694f3f234a5.zip |
No tracing of nop traceable fields (#29926)
* Add `no_trace` option to JSTraceable derive
* NoTrace wrapper
* Port some types to no_trace schematics
* Fixing my unsafe mistakes (not tracing traceables)
* Add docs & safety guards for no_trace
Safety guards (trait shenanigans) guarantees safety usage of `no_trace`
* Port canvas_traits to no_trace
* Port servo_media to no_trace
* Port net_traits to no_trace
* Port style to no_trace
* Port webgpu to no_trace
* Port script_traits to no_trace
* Port canvas_traits, devtools_traits, embedder_traits, profile_traits to no_trace
* unrooted_must_root lint in seperate file
* Add trace_in_no_trace_lint as script_plugin
* Composable types in must_not_have_traceable
* Introduced HashMapTracedValues wrapper
* `HashMap<NoTrace<K>,V>`->`HashMapTracedValues<K,V>`
* Port rest of servo's types to no_trace
* Port html5ever, euclid, mime and http to no_trace
* Port remaining externals to no_trace
* Port webxr and Arc<Mutex<_>>
* Fix spelling in notrace doc
Diffstat (limited to 'components/script/dom/webglrenderingcontext.rs')
-rw-r--r-- | components/script/dom/webglrenderingcontext.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index 9a2b561adae..cedbbd5cc7e 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -166,13 +166,18 @@ pub struct WebGLRenderingContext { #[ignore_malloc_size_of = "Channels are hard"] webgl_sender: WebGLMessageSender, #[ignore_malloc_size_of = "Defined in webrender"] + #[no_trace] webrender_image: ImageKey, + #[no_trace] webgl_version: WebGLVersion, + #[no_trace] glsl_version: WebGLSLVersion, #[ignore_malloc_size_of = "Defined in surfman"] + #[no_trace] limits: GLLimits, canvas: Dom<HTMLCanvasElement>, #[ignore_malloc_size_of = "Defined in canvas_traits"] + #[no_trace] last_error: Cell<Option<WebGLError>>, texture_packing_alignment: Cell<u8>, texture_unpacking_settings: Cell<TextureUnpacking>, @@ -190,6 +195,7 @@ pub struct WebGLRenderingContext { current_scissor: Cell<(i32, i32, u32, u32)>, #[ignore_malloc_size_of = "Because it's small"] current_clear_color: Cell<(f32, f32, f32, f32)>, + #[no_trace] size: Cell<Size2D<u32>>, extension_manager: WebGLExtensions, capabilities: Capabilities, @@ -198,6 +204,7 @@ pub struct WebGLRenderingContext { default_vao_webgl2: DomOnceCell<WebGLVertexArrayObject>, current_vao_webgl2: MutNullableDom<WebGLVertexArrayObject>, textures: Textures, + #[no_trace] api_type: GlType, } @@ -4886,7 +4893,9 @@ pub enum TexSource { #[derive(JSTraceable)] pub struct WebGLCommandSender { + #[no_trace] sender: WebGLChan, + #[no_trace] waker: Option<Box<dyn EventLoopWaker>>, } @@ -4906,8 +4915,10 @@ impl WebGLCommandSender { #[derive(JSTraceable, MallocSizeOf)] pub(crate) struct WebGLMessageSender { + #[no_trace] sender: WebGLMsgSender, #[ignore_malloc_size_of = "traits are cumbersome"] + #[no_trace] waker: Option<Box<dyn EventLoopWaker>>, } |