diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2015-10-29 21:58:22 +0530 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2015-10-29 21:58:22 +0530 |
commit | 88f501c412ddf73bce8c585c324f45b0d97d48aa (patch) | |
tree | 8a710fd8ed76376e80114eb07671d97fd95c92b4 /components/script/dom | |
parent | 430578355b75a3d58bec48b865cccbcf7eb8c990 (diff) | |
parent | 4dbc99c7f3946b5d94266ad5c1ce932c92e3ba1f (diff) | |
download | servo-88f501c412ddf73bce8c585c324f45b0d97d48aa.tar.gz servo-88f501c412ddf73bce8c585c324f45b0d97d48aa.zip |
Auto merge of #5745 - servo:gc, r=Manishearth
Move the DOM memory management blog post into the tree.
This is a WIP, but I wanted to get eyes on it already.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/5745)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/bindings/trace.rs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index 156239eb273..c78429f8368 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -12,18 +12,18 @@ //! phase. (This happens through `JSClass.trace` for non-proxy bindings, and //! through `ProxyTraps.trace` otherwise.) //! 2. `_trace` calls `Foo::trace()` (an implementation of `JSTraceable`). -//! This is typically derived via a `#[dom_struct]` (implies `#[derive(JSTraceable)]`) annotation. +//! This is typically derived via a `#[dom_struct]` +//! (implies `#[derive(JSTraceable)]`) annotation. //! Non-JS-managed types have an empty inline `trace()` method, //! achieved via `no_jsmanaged_fields!` or similar. //! 3. For all fields, `Foo::trace()` //! calls `trace()` on the field. //! For example, for fields of type `JS<T>`, `JS<T>::trace()` calls //! `trace_reflector()`. -//! 4. `trace_reflector()` calls `trace_object()` with the `JSObject` for the -//! reflector. -//! 5. `trace_object()` calls `JS_CallTracer()` to notify the GC, which will -//! add the object to the graph, and will trace that object as well. -//! 6. When the GC finishes tracing, it [`finalizes`](../index.html#destruction) +//! 4. `trace_reflector()` calls `JS_CallUnbarrieredObjectTracer()` with a +//! pointer to the `JSObject` for the reflector. This notifies the GC, which +//! will add the object to the graph, and will trace that object as well. +//! 5. When the GC finishes tracing, it [`finalizes`](../index.html#destruction) //! any reflectors that were not reachable. //! //! The `no_jsmanaged_fields!()` macro adds an empty implementation of `JSTraceable` to |