aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/trace.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/bindings/trace.rs')
-rw-r--r--components/script/dom/bindings/trace.rs119
1 files changed, 62 insertions, 57 deletions
diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs
index ca01ff600d8..2c395094e7f 100644
--- a/components/script/dom/bindings/trace.rs
+++ b/components/script/dom/bindings/trace.rs
@@ -149,9 +149,11 @@ pub fn trace_jsval(tracer: *mut JSTracer, description: &str, val: &Heap<JSVal>)
}
trace!("tracing value {}", description);
- CallValueTracer(tracer,
- val.ptr.get() as *mut _,
- GCTraceKindToAscii(val.get().trace_kind()));
+ CallValueTracer(
+ tracer,
+ val.ptr.get() as *mut _,
+ GCTraceKindToAscii(val.get().trace_kind()),
+ );
}
}
@@ -166,9 +168,11 @@ pub fn trace_reflector(tracer: *mut JSTracer, description: &str, reflector: &Ref
pub fn trace_object(tracer: *mut JSTracer, description: &str, obj: &Heap<*mut JSObject>) {
unsafe {
trace!("tracing {}", description);
- CallObjectTracer(tracer,
- obj.ptr.get() as *mut _,
- GCTraceKindToAscii(TraceKind::Object));
+ CallObjectTracer(
+ tracer,
+ obj.ptr.get() as *mut _,
+ GCTraceKindToAscii(TraceKind::Object),
+ );
}
}
@@ -295,9 +299,10 @@ unsafe impl<T: JSTraceable, U: JSTraceable> JSTraceable for Result<T, U> {
}
unsafe impl<K, V, S> JSTraceable for HashMap<K, V, S>
- where K: Hash + Eq + JSTraceable,
- V: JSTraceable,
- S: BuildHasher,
+where
+ K: Hash + Eq + JSTraceable,
+ V: JSTraceable,
+ S: BuildHasher,
{
#[inline]
unsafe fn trace(&self, trc: *mut JSTracer) {
@@ -309,8 +314,9 @@ unsafe impl<K, V, S> JSTraceable for HashMap<K, V, S>
}
unsafe impl<T, S> JSTraceable for HashSet<T, S>
- where T: Hash + Eq + JSTraceable,
- S: BuildHasher,
+where
+ T: Hash + Eq + JSTraceable,
+ S: BuildHasher,
{
#[inline]
unsafe fn trace(&self, trc: *mut JSTracer) {
@@ -365,7 +371,12 @@ unsafe_no_jsmanaged_fields!(PropertyDeclarationBlock);
// These three are interdependent, if you plan to put jsmanaged data
// in one of these make sure it is propagated properly to containing structs
unsafe_no_jsmanaged_fields!(DocumentActivity, WindowSizeData, WindowSizeType);
-unsafe_no_jsmanaged_fields!(BrowsingContextId, HistoryStateId, PipelineId, TopLevelBrowsingContextId);
+unsafe_no_jsmanaged_fields!(
+ BrowsingContextId,
+ HistoryStateId,
+ PipelineId,
+ TopLevelBrowsingContextId
+);
unsafe_no_jsmanaged_fields!(TimerEventId, TimerSource);
unsafe_no_jsmanaged_fields!(TimelineMarkerType);
unsafe_no_jsmanaged_fields!(WorkerId);
@@ -459,7 +470,10 @@ unsafe impl<'a, A, B> JSTraceable for fn(&A) -> B {
}
}
-unsafe impl<T> JSTraceable for IpcSender<T> where T: for<'de> Deserialize<'de> + Serialize {
+unsafe impl<T> JSTraceable for IpcSender<T>
+where
+ T: for<'de> Deserialize<'de> + Serialize,
+{
#[inline]
unsafe fn trace(&self, _: *mut JSTracer) {
// Do nothing
@@ -481,7 +495,10 @@ unsafe impl JSTraceable for () {
}
}
-unsafe impl<T> JSTraceable for IpcReceiver<T> where T: for<'de> Deserialize<'de> + Serialize {
+unsafe impl<T> JSTraceable for IpcReceiver<T>
+where
+ T: for<'de> Deserialize<'de> + Serialize,
+{
#[inline]
unsafe fn trace(&self, _: *mut JSTracer) {
// Do nothing
@@ -509,14 +526,20 @@ unsafe impl<T: Send> JSTraceable for Sender<T> {
}
}
-unsafe impl<T: Send> JSTraceable for WebGLReceiver<T> where T: for<'de> Deserialize<'de> + Serialize {
+unsafe impl<T: Send> JSTraceable for WebGLReceiver<T>
+where
+ T: for<'de> Deserialize<'de> + Serialize,
+{
#[inline]
unsafe fn trace(&self, _: *mut JSTracer) {
// Do nothing
}
}
-unsafe impl<T: Send> JSTraceable for WebGLSender<T> where T: for<'de> Deserialize<'de> + Serialize {
+unsafe impl<T: Send> JSTraceable for WebGLSender<T>
+where
+ T: for<'de> Deserialize<'de> + Serialize,
+{
#[inline]
unsafe fn trace(&self, _: *mut JSTracer) {
// Do nothing
@@ -665,7 +688,10 @@ unsafe impl JSTraceable for StyleLocked<MediaList> {
}
}
-unsafe impl<T> JSTraceable for TypedArray<T, Box<Heap<*mut JSObject>>> where T: TypedArrayElement {
+unsafe impl<T> JSTraceable for TypedArray<T, Box<Heap<*mut JSObject>>>
+where
+ T: TypedArrayElement,
+{
unsafe fn trace(&self, trc: *mut JSTracer) {
self.underlying_object().trace(trc);
}
@@ -682,34 +708,26 @@ where
}
}
-
/// Holds a set of JSTraceables that need to be rooted
struct RootedTraceableSet {
set: Vec<*const JSTraceable>,
}
-thread_local!(
- /// TLV Holds a set of JSTraceables that need to be rooted
- static ROOTED_TRACEABLES: RefCell<RootedTraceableSet> =
- RefCell::new(RootedTraceableSet::new());
-);
+thread_local!(/// TLV Holds a set of JSTraceables that need to be rooted
+static ROOTED_TRACEABLES: RefCell<RootedTraceableSet> = RefCell::new(RootedTraceableSet::new()););
impl RootedTraceableSet {
fn new() -> RootedTraceableSet {
- RootedTraceableSet {
- set: vec![],
- }
+ RootedTraceableSet { set: vec![] }
}
unsafe fn remove(traceable: *const JSTraceable) {
ROOTED_TRACEABLES.with(|ref traceables| {
let mut traceables = traceables.borrow_mut();
- let idx =
- match traceables.set.iter()
- .rposition(|x| *x == traceable) {
- Some(idx) => idx,
- None => unreachable!(),
- };
+ let idx = match traceables.set.iter().rposition(|x| *x == traceable) {
+ Some(idx) => idx,
+ None => unreachable!(),
+ };
traceables.set.remove(idx);
});
}
@@ -744,9 +762,7 @@ impl<'a, T: JSTraceable + 'static> RootedTraceable<'a, T> {
unsafe {
RootedTraceableSet::add(traceable);
}
- RootedTraceable {
- ptr: traceable,
- }
+ RootedTraceable { ptr: traceable }
}
}
@@ -787,16 +803,14 @@ impl<T: JSTraceable + 'static> RootedTraceableBox<T> {
unsafe {
RootedTraceableSet::add(traceable);
}
- RootedTraceableBox {
- ptr: traceable,
- }
+ RootedTraceableBox { ptr: traceable }
}
}
impl<T> RootedTraceableBox<Heap<T>>
- where
- Heap<T>: JSTraceable + 'static,
- T: GCMethods + Copy,
+where
+ Heap<T>: JSTraceable + 'static,
+ T: GCMethods + Copy,
{
pub fn handle(&self) -> Handle<T> {
unsafe { Handle::from_raw((*self.ptr).handle()) }
@@ -812,17 +826,13 @@ impl<T: JSTraceable + Default> Default for RootedTraceableBox<T> {
impl<T: JSTraceable> Deref for RootedTraceableBox<T> {
type Target = T;
fn deref(&self) -> &T {
- unsafe {
- &*self.ptr
- }
+ unsafe { &*self.ptr }
}
}
impl<T: JSTraceable> DerefMut for RootedTraceableBox<T> {
fn deref_mut(&mut self) -> &mut T {
- unsafe {
- &mut *self.ptr
- }
+ unsafe { &mut *self.ptr }
}
}
@@ -849,9 +859,7 @@ pub struct RootableVec<T: JSTraceable> {
impl<T: JSTraceable> RootableVec<T> {
/// Create a vector of items of type T that can be rooted later.
pub fn new_unrooted() -> RootableVec<T> {
- RootableVec {
- v: vec![],
- }
+ RootableVec { v: vec![] }
}
}
@@ -868,9 +876,7 @@ impl<'a, T: 'static + JSTraceable> RootedVec<'a, T> {
unsafe {
RootedTraceableSet::add(root);
}
- RootedVec {
- root: root,
- }
+ RootedVec { root: root }
}
}
@@ -878,15 +884,14 @@ impl<'a, T: 'static + JSTraceable + DomObject> RootedVec<'a, Dom<T>> {
/// Create a vector of items of type Dom<T> that is rooted for
/// the lifetime of this struct
pub fn from_iter<I>(root: &'a mut RootableVec<Dom<T>>, iter: I) -> Self
- where I: Iterator<Item = DomRoot<T>>
+ where
+ I: Iterator<Item = DomRoot<T>>,
{
unsafe {
RootedTraceableSet::add(root);
}
root.v.extend(iter.map(|item| Dom::from_ref(&*item)));
- RootedVec {
- root: root,
- }
+ RootedVec { root: root }
}
}