diff options
author | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2020-02-12 12:24:20 +0100 |
---|---|---|
committer | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2020-02-21 11:11:00 +0100 |
commit | 67706f9c0b7fdb07c6ba12bf7ce6de557a4e81de (patch) | |
tree | 1dc6c4d6bc27168547a8da20d6607f286dcacd54 /components/layout_2020/layout_debug.rs | |
parent | 84dd334160ad51b623c42cf637892709ce348de0 (diff) | |
download | servo-67706f9c0b7fdb07c6ba12bf7ce6de557a4e81de.tar.gz servo-67706f9c0b7fdb07c6ba12bf7ce6de557a4e81de.zip |
Add fragment debug id
Diffstat (limited to 'components/layout_2020/layout_debug.rs')
-rw-r--r-- | components/layout_2020/layout_debug.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/components/layout_2020/layout_debug.rs b/components/layout_2020/layout_debug.rs index 32ab13fc484..4e28ce8ffeb 100644 --- a/components/layout_2020/layout_debug.rs +++ b/components/layout_2020/layout_debug.rs @@ -10,10 +10,15 @@ use serde_json::{to_string, to_value, Value}; use std::cell::RefCell; use std::fs::File; use std::io::Write; +#[cfg(debug_assertions)] +use std::sync::atomic::{AtomicUsize, Ordering}; use std::sync::Arc; thread_local!(static STATE_KEY: RefCell<Option<State>> = RefCell::new(None)); +#[cfg(debug_assertions)] +static DEBUG_ID_COUNTER: AtomicUsize = AtomicUsize::new(0); + pub struct Scope; #[macro_export] @@ -80,6 +85,12 @@ impl Drop for Scope { } } +/// Generate a unique ID for Fragments. +#[cfg(debug_assertions)] +pub fn generate_unique_debug_id() -> u16 { + DEBUG_ID_COUNTER.fetch_add(1, Ordering::SeqCst) as u16 +} + /// Begin a layout debug trace. If this has not been called, /// creating debug scopes has no effect. pub fn begin_trace(root: Arc<FragmentTreeRoot>) { |