mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Remove HeapGCValue
It could be used to have mutable JSVal fields without GC barriers. With the removal of that trait, MutHeap and MutNullableHeap can respectively be replaced by MutJS and MutNullableJS.
This commit is contained in:
parent
f7d53b7bc1
commit
1327ebd52f
64 changed files with 251 additions and 271 deletions
|
@ -24,7 +24,7 @@ use dom::bindings::codegen::Bindings::WindowBinding::{FrameRequestCallback, Scro
|
|||
use dom::bindings::codegen::UnionTypes::NodeOrString;
|
||||
use dom::bindings::error::{Error, ErrorResult, Fallible};
|
||||
use dom::bindings::inheritance::{Castable, ElementTypeId, HTMLElementTypeId, NodeTypeId};
|
||||
use dom::bindings::js::{JS, LayoutJS, MutNullableHeap, Root};
|
||||
use dom::bindings::js::{JS, LayoutJS, MutNullableJS, Root};
|
||||
use dom::bindings::js::RootedReference;
|
||||
use dom::bindings::num::Finite;
|
||||
use dom::bindings::refcounted::{Trusted, TrustedPromise};
|
||||
|
@ -184,8 +184,8 @@ pub struct Document {
|
|||
window: JS<Window>,
|
||||
/// https://html.spec.whatwg.org/multipage/#concept-document-bc
|
||||
browsing_context: Option<JS<BrowsingContext>>,
|
||||
implementation: MutNullableHeap<JS<DOMImplementation>>,
|
||||
location: MutNullableHeap<JS<Location>>,
|
||||
implementation: MutNullableJS<DOMImplementation>,
|
||||
location: MutNullableJS<Location>,
|
||||
content_type: DOMString,
|
||||
last_modified: Option<String>,
|
||||
encoding: Cell<EncodingRef>,
|
||||
|
@ -197,29 +197,29 @@ pub struct Document {
|
|||
tag_map: DOMRefCell<HashMap<LocalName, JS<HTMLCollection>>>,
|
||||
tagns_map: DOMRefCell<HashMap<QualName, JS<HTMLCollection>>>,
|
||||
classes_map: DOMRefCell<HashMap<Vec<Atom>, JS<HTMLCollection>>>,
|
||||
images: MutNullableHeap<JS<HTMLCollection>>,
|
||||
embeds: MutNullableHeap<JS<HTMLCollection>>,
|
||||
links: MutNullableHeap<JS<HTMLCollection>>,
|
||||
forms: MutNullableHeap<JS<HTMLCollection>>,
|
||||
scripts: MutNullableHeap<JS<HTMLCollection>>,
|
||||
anchors: MutNullableHeap<JS<HTMLCollection>>,
|
||||
applets: MutNullableHeap<JS<HTMLCollection>>,
|
||||
images: MutNullableJS<HTMLCollection>,
|
||||
embeds: MutNullableJS<HTMLCollection>,
|
||||
links: MutNullableJS<HTMLCollection>,
|
||||
forms: MutNullableJS<HTMLCollection>,
|
||||
scripts: MutNullableJS<HTMLCollection>,
|
||||
anchors: MutNullableJS<HTMLCollection>,
|
||||
applets: MutNullableJS<HTMLCollection>,
|
||||
/// List of stylesheets associated with nodes in this document. |None| if the list needs to be refreshed.
|
||||
stylesheets: DOMRefCell<Option<Vec<StylesheetInDocument>>>,
|
||||
/// Whether the list of stylesheets has changed since the last reflow was triggered.
|
||||
stylesheets_changed_since_reflow: Cell<bool>,
|
||||
stylesheet_list: MutNullableHeap<JS<StyleSheetList>>,
|
||||
stylesheet_list: MutNullableJS<StyleSheetList>,
|
||||
ready_state: Cell<DocumentReadyState>,
|
||||
/// Whether the DOMContentLoaded event has already been dispatched.
|
||||
domcontentloaded_dispatched: Cell<bool>,
|
||||
/// The element that has most recently requested focus for itself.
|
||||
possibly_focused: MutNullableHeap<JS<Element>>,
|
||||
possibly_focused: MutNullableJS<Element>,
|
||||
/// The element that currently has the document focus context.
|
||||
focused: MutNullableHeap<JS<Element>>,
|
||||
focused: MutNullableJS<Element>,
|
||||
/// The script element that is currently executing.
|
||||
current_script: MutNullableHeap<JS<HTMLScriptElement>>,
|
||||
current_script: MutNullableJS<HTMLScriptElement>,
|
||||
/// https://html.spec.whatwg.org/multipage/#pending-parsing-blocking-script
|
||||
pending_parsing_blocking_script: MutNullableHeap<JS<HTMLScriptElement>>,
|
||||
pending_parsing_blocking_script: MutNullableJS<HTMLScriptElement>,
|
||||
/// Number of stylesheets that block executing the next parser-inserted script
|
||||
script_blocking_stylesheets_count: Cell<u32>,
|
||||
/// https://html.spec.whatwg.org/multipage/#list-of-scripts-that-will-execute-when-the-document-has-finished-parsing
|
||||
|
@ -245,14 +245,14 @@ pub struct Document {
|
|||
/// Tracks all outstanding loads related to this document.
|
||||
loader: DOMRefCell<DocumentLoader>,
|
||||
/// The current active HTML parser, to allow resuming after interruptions.
|
||||
current_parser: MutNullableHeap<JS<ServoParser>>,
|
||||
current_parser: MutNullableJS<ServoParser>,
|
||||
/// When we should kick off a reflow. This happens during parsing.
|
||||
reflow_timeout: Cell<Option<u64>>,
|
||||
/// The cached first `base` element with an `href` attribute.
|
||||
base_element: MutNullableHeap<JS<HTMLBaseElement>>,
|
||||
base_element: MutNullableJS<HTMLBaseElement>,
|
||||
/// This field is set to the document itself for inert documents.
|
||||
/// https://html.spec.whatwg.org/multipage/#appropriate-template-contents-owner-document
|
||||
appropriate_template_contents_owner_document: MutNullableHeap<JS<Document>>,
|
||||
appropriate_template_contents_owner_document: MutNullableJS<Document>,
|
||||
/// Information on elements needing restyle to ship over to the layout thread when the
|
||||
/// time comes.
|
||||
pending_restyles: DOMRefCell<HashMap<JS<Element>, PendingRestyle>>,
|
||||
|
@ -280,7 +280,7 @@ pub struct Document {
|
|||
/// https://html.spec.whatwg.org/multipage/#dom-document-referrer
|
||||
referrer: Option<String>,
|
||||
/// https://html.spec.whatwg.org/multipage/#target-element
|
||||
target_element: MutNullableHeap<JS<Element>>,
|
||||
target_element: MutNullableJS<Element>,
|
||||
/// https://w3c.github.io/uievents/#event-type-dblclick
|
||||
#[ignore_heap_size_of = "Defined in std"]
|
||||
last_click_info: DOMRefCell<Option<(Instant, Point2D<f32>)>>,
|
||||
|
@ -293,7 +293,7 @@ pub struct Document {
|
|||
/// See also: https://github.com/servo/servo/issues/10110
|
||||
dom_count: Cell<u32>,
|
||||
/// Entry node for fullscreen.
|
||||
fullscreen_element: MutNullableHeap<JS<Element>>,
|
||||
fullscreen_element: MutNullableJS<Element>,
|
||||
}
|
||||
|
||||
#[derive(JSTraceable, HeapSizeOf)]
|
||||
|
@ -1036,7 +1036,7 @@ impl Document {
|
|||
pub fn handle_mouse_move_event(&self,
|
||||
js_runtime: *mut JSRuntime,
|
||||
client_point: Option<Point2D<f32>>,
|
||||
prev_mouse_over_target: &MutNullableHeap<JS<Element>>) {
|
||||
prev_mouse_over_target: &MutNullableJS<Element>) {
|
||||
let client_point = match client_point {
|
||||
None => {
|
||||
// If there's no point, there's no target under the mouse
|
||||
|
@ -1872,7 +1872,7 @@ impl Document {
|
|||
applets: Default::default(),
|
||||
stylesheets: DOMRefCell::new(None),
|
||||
stylesheets_changed_since_reflow: Cell::new(false),
|
||||
stylesheet_list: MutNullableHeap::new(None),
|
||||
stylesheet_list: MutNullableJS::new(None),
|
||||
ready_state: Cell::new(ready_state),
|
||||
domcontentloaded_dispatched: Cell::new(domcontentloaded_dispatched),
|
||||
possibly_focused: Default::default(),
|
||||
|
@ -1907,11 +1907,11 @@ impl Document {
|
|||
origin: origin,
|
||||
referrer: referrer,
|
||||
referrer_policy: Cell::new(referrer_policy),
|
||||
target_element: MutNullableHeap::new(None),
|
||||
target_element: MutNullableJS::new(None),
|
||||
last_click_info: DOMRefCell::new(None),
|
||||
ignore_destructive_writes_counter: Default::default(),
|
||||
dom_count: Cell::new(1),
|
||||
fullscreen_element: MutNullableHeap::new(None),
|
||||
fullscreen_element: MutNullableJS::new(None),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue