mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
There were two kinds of layout tracing controlled by the same debugging option: - modern layout: Functionality that dumped a JSON serialization of the layout tree before and after layout. - legacy layout: A scope based tracing that reported the process of layout in a structured way. I don't think anyone working on layout is using either of these two features. For modern layout requiring data structure to implement `serde` serialization is incredibly inconvenient and also generates a lot of extra code. We also have a more modern tracing functionality based on perfetto that we have started to use for layout and IMO it's actually being used and more robust. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
57 lines
1.1 KiB
Rust
57 lines
1.1 KiB
Rust
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
use std::fmt;
|
|
use std::ops::Deref;
|
|
|
|
use atomic_refcell::AtomicRefCell;
|
|
use servo_arc::Arc;
|
|
|
|
pub(crate) struct ArcRefCell<T> {
|
|
value: Arc<AtomicRefCell<T>>,
|
|
}
|
|
|
|
impl<T> ArcRefCell<T> {
|
|
pub fn new(value: T) -> Self {
|
|
Self {
|
|
value: Arc::new(AtomicRefCell::new(value)),
|
|
}
|
|
}
|
|
}
|
|
|
|
impl<T> Clone for ArcRefCell<T> {
|
|
fn clone(&self) -> Self {
|
|
Self {
|
|
value: self.value.clone(),
|
|
}
|
|
}
|
|
}
|
|
|
|
impl<T> Default for ArcRefCell<T>
|
|
where
|
|
T: Default,
|
|
{
|
|
fn default() -> Self {
|
|
Self {
|
|
value: Arc::new(AtomicRefCell::new(Default::default())),
|
|
}
|
|
}
|
|
}
|
|
|
|
impl<T> Deref for ArcRefCell<T> {
|
|
type Target = AtomicRefCell<T>;
|
|
|
|
fn deref(&self) -> &Self::Target {
|
|
&self.value
|
|
}
|
|
}
|
|
|
|
impl<T> fmt::Debug for ArcRefCell<T>
|
|
where
|
|
T: fmt::Debug,
|
|
{
|
|
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
|
self.value.fmt(formatter)
|
|
}
|
|
}
|