Use Traceable for primitive types and DOMString

This commit is contained in:
Manish Goregaokar 2014-06-16 21:59:01 +05:30
parent dae6ad409d
commit ee56b45a8c
5 changed files with 31 additions and 31 deletions

View file

@ -7,7 +7,7 @@
use dom::bindings::codegen::InheritTypes::{CharacterDataDerived, NodeCast}; use dom::bindings::codegen::InheritTypes::{CharacterDataDerived, NodeCast};
use dom::bindings::error::{Fallible, ErrorResult, IndexSize}; use dom::bindings::error::{Fallible, ErrorResult, IndexSize};
use dom::bindings::js::JSRef; use dom::bindings::js::JSRef;
use dom::bindings::trace::Untraceable; use dom::bindings::trace::Traceable;
use dom::bindings::utils::{Reflectable, Reflector}; use dom::bindings::utils::{Reflectable, Reflector};
use dom::document::Document; use dom::document::Document;
use dom::eventtarget::{EventTarget, NodeTargetTypeId}; use dom::eventtarget::{EventTarget, NodeTargetTypeId};
@ -19,7 +19,7 @@ use std::cell::RefCell;
#[deriving(Encodable)] #[deriving(Encodable)]
pub struct CharacterData { pub struct CharacterData {
pub node: Node, pub node: Node,
pub data: Untraceable<RefCell<DOMString>>, pub data: Traceable<RefCell<DOMString>>,
} }
impl CharacterDataDerived for EventTarget { impl CharacterDataDerived for EventTarget {
@ -37,7 +37,7 @@ impl CharacterData {
pub fn new_inherited(id: NodeTypeId, data: DOMString, document: &JSRef<Document>) -> CharacterData { pub fn new_inherited(id: NodeTypeId, data: DOMString, document: &JSRef<Document>) -> CharacterData {
CharacterData { CharacterData {
node: Node::new_inherited(id, document), node: Node::new_inherited(id, document),
data: Untraceable::new(RefCell::new(data)), data: Traceable::new(RefCell::new(data)),
} }
} }
} }

View file

@ -66,7 +66,7 @@ pub struct Document {
idmap: Traceable<RefCell<HashMap<DOMString, Vec<JS<Element>>>>>, idmap: Traceable<RefCell<HashMap<DOMString, Vec<JS<Element>>>>>,
pub implementation: Cell<Option<JS<DOMImplementation>>>, pub implementation: Cell<Option<JS<DOMImplementation>>>,
pub content_type: DOMString, pub content_type: DOMString,
pub encoding_name: Untraceable<RefCell<DOMString>>, pub encoding_name: Traceable<RefCell<DOMString>>,
pub is_html_document: bool, pub is_html_document: bool,
pub url: Untraceable<Url>, pub url: Untraceable<Url>,
pub quirks_mode: Untraceable<Cell<QuirksMode>>, pub quirks_mode: Untraceable<Cell<QuirksMode>>,
@ -231,7 +231,7 @@ impl Document {
// http://dom.spec.whatwg.org/#concept-document-quirks // http://dom.spec.whatwg.org/#concept-document-quirks
quirks_mode: Untraceable::new(Cell::new(NoQuirks)), quirks_mode: Untraceable::new(Cell::new(NoQuirks)),
// http://dom.spec.whatwg.org/#concept-document-encoding // http://dom.spec.whatwg.org/#concept-document-encoding
encoding_name: Untraceable::new(RefCell::new("utf-8".to_string())), encoding_name: Traceable::new(RefCell::new("utf-8".to_string())),
is_html_document: is_html_document == HTMLDocument, is_html_document: is_html_document == HTMLDocument,
} }
} }

View file

@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::EventBinding;
use dom::bindings::codegen::Bindings::EventBinding::EventConstants; use dom::bindings::codegen::Bindings::EventBinding::EventConstants;
use dom::bindings::error::Fallible; use dom::bindings::error::Fallible;
use dom::bindings::js::{JS, JSRef, Temporary}; use dom::bindings::js::{JS, JSRef, Temporary};
use dom::bindings::trace::Untraceable; use dom::bindings::trace::Traceable;
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::eventtarget::EventTarget; use dom::eventtarget::EventTarget;
use dom::window::Window; use dom::window::Window;
@ -52,16 +52,16 @@ pub struct Event {
pub reflector_: Reflector, pub reflector_: Reflector,
pub current_target: Cell<Option<JS<EventTarget>>>, pub current_target: Cell<Option<JS<EventTarget>>>,
pub target: Cell<Option<JS<EventTarget>>>, pub target: Cell<Option<JS<EventTarget>>>,
type_: Untraceable<RefCell<DOMString>>, type_: Traceable<RefCell<DOMString>>,
pub phase: Untraceable<Cell<EventPhase>>, pub phase: Traceable<Cell<EventPhase>>,
pub canceled: Untraceable<Cell<bool>>, pub canceled: Traceable<Cell<bool>>,
pub stop_propagation: Untraceable<Cell<bool>>, pub stop_propagation: Traceable<Cell<bool>>,
pub stop_immediate: Untraceable<Cell<bool>>, pub stop_immediate: Traceable<Cell<bool>>,
pub cancelable: Untraceable<Cell<bool>>, pub cancelable: Traceable<Cell<bool>>,
pub bubbles: Untraceable<Cell<bool>>, pub bubbles: Traceable<Cell<bool>>,
pub trusted: Untraceable<Cell<bool>>, pub trusted: Traceable<Cell<bool>>,
pub dispatching: Untraceable<Cell<bool>>, pub dispatching: Traceable<Cell<bool>>,
pub initialized: Untraceable<Cell<bool>>, pub initialized: Traceable<Cell<bool>>,
pub timestamp: u64, pub timestamp: u64,
} }
@ -72,16 +72,16 @@ impl Event {
reflector_: Reflector::new(), reflector_: Reflector::new(),
current_target: Cell::new(None), current_target: Cell::new(None),
target: Cell::new(None), target: Cell::new(None),
phase: Untraceable::new(Cell::new(PhaseNone)), phase: Traceable::new(Cell::new(PhaseNone)),
type_: Untraceable::new(RefCell::new("".to_string())), type_: Traceable::new(RefCell::new("".to_string())),
canceled: Untraceable::new(Cell::new(false)), canceled: Traceable::new(Cell::new(false)),
cancelable: Untraceable::new(Cell::new(true)), cancelable: Traceable::new(Cell::new(true)),
bubbles: Untraceable::new(Cell::new(false)), bubbles: Traceable::new(Cell::new(false)),
trusted: Untraceable::new(Cell::new(false)), trusted: Traceable::new(Cell::new(false)),
dispatching: Untraceable::new(Cell::new(false)), dispatching: Traceable::new(Cell::new(false)),
stop_propagation: Untraceable::new(Cell::new(false)), stop_propagation: Traceable::new(Cell::new(false)),
stop_immediate: Untraceable::new(Cell::new(false)), stop_immediate: Traceable::new(Cell::new(false)),
initialized: Untraceable::new(Cell::new(false)), initialized: Traceable::new(Cell::new(false)),
timestamp: time::get_time().sec as u64, timestamp: time::get_time().sec as u64,
} }
} }

View file

@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::UIEventBinding;
use dom::bindings::codegen::InheritTypes::{EventCast, UIEventDerived}; use dom::bindings::codegen::InheritTypes::{EventCast, UIEventDerived};
use dom::bindings::error::Fallible; use dom::bindings::error::Fallible;
use dom::bindings::js::{JS, JSRef, RootedReference, Temporary, OptionalSettable}; use dom::bindings::js::{JS, JSRef, RootedReference, Temporary, OptionalSettable};
use dom::bindings::trace::Untraceable; use dom::bindings::trace::Traceable;
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::event::{Event, EventMethods, EventTypeId, UIEventTypeId}; use dom::event::{Event, EventMethods, EventTypeId, UIEventTypeId};
use dom::window::Window; use dom::window::Window;
@ -19,7 +19,7 @@ use std::cell::Cell;
pub struct UIEvent { pub struct UIEvent {
pub event: Event, pub event: Event,
pub view: Cell<Option<JS<Window>>>, pub view: Cell<Option<JS<Window>>>,
pub detail: Untraceable<Cell<i32>> pub detail: Traceable<Cell<i32>>
} }
impl UIEventDerived for Event { impl UIEventDerived for Event {
@ -33,7 +33,7 @@ impl UIEvent {
UIEvent { UIEvent {
event: Event::new_inherited(type_id), event: Event::new_inherited(type_id),
view: Cell::new(None), view: Cell::new(None),
detail: Untraceable::new(Cell::new(0)), detail: Traceable::new(Cell::new(0)),
} }
} }

View file

@ -75,7 +75,7 @@ pub struct Window {
pub navigator: Cell<Option<JS<Navigator>>>, pub navigator: Cell<Option<JS<Navigator>>>,
pub image_cache_task: ImageCacheTask, pub image_cache_task: ImageCacheTask,
pub active_timers: Traceable<RefCell<HashMap<TimerId, TimerHandle>>>, pub active_timers: Traceable<RefCell<HashMap<TimerId, TimerHandle>>>,
pub next_timer_handle: Untraceable<Cell<i32>>, pub next_timer_handle: Traceable<Cell<i32>>,
pub compositor: Untraceable<Box<ScriptListener>>, pub compositor: Untraceable<Box<ScriptListener>>,
pub browser_context: Traceable<RefCell<Option<BrowserContext>>>, pub browser_context: Traceable<RefCell<Option<BrowserContext>>>,
pub page: Rc<Page>, pub page: Rc<Page>,
@ -399,7 +399,7 @@ impl Window {
navigator: Cell::new(None), navigator: Cell::new(None),
image_cache_task: image_cache_task, image_cache_task: image_cache_task,
active_timers: Traceable::new(RefCell::new(HashMap::new())), active_timers: Traceable::new(RefCell::new(HashMap::new())),
next_timer_handle: Untraceable::new(Cell::new(0)), next_timer_handle: Traceable::new(Cell::new(0)),
browser_context: Traceable::new(RefCell::new(None)), browser_context: Traceable::new(RefCell::new(None)),
performance: Cell::new(None), performance: Cell::new(None),
navigationStart: time::get_time().sec as u64, navigationStart: time::get_time().sec as u64,