mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
Rename a bunch of style/layout data items
GetLayoutData::get_style_and_layout_data becomes GetOpaqueStyleAndLayoutData::get_opaque_style_and_layout_data. GetRawData::get_raw_data becomes GetStyleAndLayoutData::get_style_and_layout_data. LayoutNode::init_style_and_layout_data becomes LayoutNode::init_opaque_style_and_layout_data. LayoutNode::take_style_and_layout_data becomes LayoutNode::take_opaque_style_and_layout_data.
This commit is contained in:
parent
3df65c02fe
commit
e3be136c9b
10 changed files with 105 additions and 95 deletions
|
@ -1037,7 +1037,10 @@ fn inner_text_collection_steps<'dom>(
|
|||
};
|
||||
|
||||
let element_data = {
|
||||
&node.get_style_and_layout_data().as_ref().map(|opaque| {
|
||||
&node
|
||||
.get_opaque_style_and_layout_data()
|
||||
.as_ref()
|
||||
.map(|opaque| {
|
||||
&opaque
|
||||
.downcast_ref::<StyleAndLayoutData>()
|
||||
.unwrap()
|
||||
|
|
|
@ -9,7 +9,7 @@ use crate::context::LayoutContext;
|
|||
use crate::display_list::DisplayListBuildState;
|
||||
use crate::flow::{Flow, FlowFlags, GetBaseFlow, ImmutableFlowUtils};
|
||||
use crate::wrapper::ThreadSafeLayoutNodeHelpers;
|
||||
use crate::wrapper::{GetRawData, LayoutNodeLayoutData};
|
||||
use crate::wrapper::{GetStyleAndLayoutData, LayoutNodeLayoutData};
|
||||
use script_layout_interface::wrapper_traits::{LayoutNode, ThreadSafeLayoutNode};
|
||||
use servo_config::opts;
|
||||
use style::context::{SharedStyleContext, StyleContext};
|
||||
|
@ -73,7 +73,7 @@ where
|
|||
// flow construction:
|
||||
// (1) They child doesn't yet have layout data (preorder traversal initializes it).
|
||||
// (2) The parent element has restyle damage (so the text flow also needs fixup).
|
||||
node.get_raw_data().is_none() || !parent_data.damage.is_empty()
|
||||
node.get_style_and_layout_data().is_none() || !parent_data.damage.is_empty()
|
||||
}
|
||||
|
||||
fn shared_context(&self) -> &SharedStyleContext {
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
use crate::data::{LayoutData, LayoutDataFlags, StyleAndLayoutData};
|
||||
use atomic_refcell::{AtomicRef, AtomicRefMut};
|
||||
use script_layout_interface::wrapper_traits::GetLayoutData;
|
||||
use script_layout_interface::wrapper_traits::GetOpaqueStyleAndLayoutData;
|
||||
use script_layout_interface::wrapper_traits::{ThreadSafeLayoutElement, ThreadSafeLayoutNode};
|
||||
use style::dom::{NodeInfo, TNode};
|
||||
use style::selector_parser::RestyleDamage;
|
||||
|
@ -47,14 +47,16 @@ pub trait LayoutNodeLayoutData<'dom> {
|
|||
|
||||
impl<'dom, T> LayoutNodeLayoutData<'dom> for T
|
||||
where
|
||||
T: GetLayoutData<'dom>,
|
||||
T: GetOpaqueStyleAndLayoutData<'dom>,
|
||||
{
|
||||
fn borrow_layout_data(self) -> Option<AtomicRef<'dom, LayoutData>> {
|
||||
self.get_raw_data().map(|d| d.layout_data.borrow())
|
||||
self.get_style_and_layout_data()
|
||||
.map(|d| d.layout_data.borrow())
|
||||
}
|
||||
|
||||
fn mutate_layout_data(self) -> Option<AtomicRefMut<'dom, LayoutData>> {
|
||||
self.get_raw_data().map(|d| d.layout_data.borrow_mut())
|
||||
self.get_style_and_layout_data()
|
||||
.map(|d| d.layout_data.borrow_mut())
|
||||
}
|
||||
|
||||
fn flow_debug_id(self) -> usize {
|
||||
|
@ -63,16 +65,16 @@ where
|
|||
}
|
||||
}
|
||||
|
||||
pub trait GetRawData<'dom> {
|
||||
fn get_raw_data(self) -> Option<&'dom StyleAndLayoutData>;
|
||||
pub trait GetStyleAndLayoutData<'dom> {
|
||||
fn get_style_and_layout_data(self) -> Option<&'dom StyleAndLayoutData>;
|
||||
}
|
||||
|
||||
impl<'dom, T> GetRawData<'dom> for T
|
||||
impl<'dom, T> GetStyleAndLayoutData<'dom> for T
|
||||
where
|
||||
T: GetLayoutData<'dom>,
|
||||
T: GetOpaqueStyleAndLayoutData<'dom>,
|
||||
{
|
||||
fn get_raw_data(self) -> Option<&'dom StyleAndLayoutData> {
|
||||
self.get_style_and_layout_data()
|
||||
fn get_style_and_layout_data(self) -> Option<&'dom StyleAndLayoutData> {
|
||||
self.get_opaque_style_and_layout_data()
|
||||
.map(|opaque| opaque.downcast_ref().unwrap())
|
||||
}
|
||||
}
|
||||
|
@ -143,7 +145,7 @@ where
|
|||
}
|
||||
|
||||
let damage = {
|
||||
let data = node.get_raw_data().unwrap();
|
||||
let data = node.get_style_and_layout_data().unwrap();
|
||||
|
||||
if !data
|
||||
.layout_data
|
||||
|
|
|
@ -8,7 +8,7 @@ use crate::element_data::{LayoutBox, LayoutDataForElement};
|
|||
use crate::geom::PhysicalSize;
|
||||
use crate::replaced::{CanvasInfo, CanvasSource, ReplacedContent};
|
||||
use crate::style_ext::{Display, DisplayGeneratingBox, DisplayInside, DisplayOutside};
|
||||
use crate::wrapper::GetRawData;
|
||||
use crate::wrapper::GetStyleAndLayoutData;
|
||||
use atomic_refcell::AtomicRefMut;
|
||||
use html5ever::LocalName;
|
||||
use net_traits::image::base::Image as NetImage;
|
||||
|
@ -448,7 +448,7 @@ where
|
|||
|
||||
#[allow(unsafe_code)]
|
||||
fn layout_data_mut(self) -> AtomicRefMut<'dom, LayoutDataForElement> {
|
||||
self.get_raw_data()
|
||||
self.get_style_and_layout_data()
|
||||
.map(|d| d.layout_data.borrow_mut())
|
||||
.unwrap()
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use crate::context::LayoutContext;
|
||||
use crate::wrapper::GetRawData;
|
||||
use crate::wrapper::GetStyleAndLayoutData;
|
||||
use script_layout_interface::wrapper_traits::LayoutNode;
|
||||
use style::context::{SharedStyleContext, StyleContext};
|
||||
use style::data::ElementData;
|
||||
|
@ -63,7 +63,7 @@ where
|
|||
}
|
||||
|
||||
fn text_node_needs_traversal(node: E::ConcreteNode, parent_data: &ElementData) -> bool {
|
||||
node.get_raw_data().is_none() || !parent_data.damage.is_empty()
|
||||
node.get_style_and_layout_data().is_none() || !parent_data.damage.is_empty()
|
||||
}
|
||||
|
||||
fn shared_context(&self) -> &SharedStyleContext {
|
||||
|
|
|
@ -5,18 +5,18 @@
|
|||
#![allow(unsafe_code)]
|
||||
|
||||
use crate::data::StyleAndLayoutData;
|
||||
use script_layout_interface::wrapper_traits::GetLayoutData;
|
||||
use script_layout_interface::wrapper_traits::GetOpaqueStyleAndLayoutData;
|
||||
|
||||
pub trait GetRawData<'dom> {
|
||||
fn get_raw_data(self) -> Option<&'dom StyleAndLayoutData>;
|
||||
pub trait GetStyleAndLayoutData<'dom> {
|
||||
fn get_style_and_layout_data(self) -> Option<&'dom StyleAndLayoutData>;
|
||||
}
|
||||
|
||||
impl<'dom, T> GetRawData<'dom> for T
|
||||
impl<'dom, T> GetStyleAndLayoutData<'dom> for T
|
||||
where
|
||||
T: GetLayoutData<'dom>,
|
||||
T: GetOpaqueStyleAndLayoutData<'dom>,
|
||||
{
|
||||
fn get_raw_data(self) -> Option<&'dom StyleAndLayoutData> {
|
||||
self.get_style_and_layout_data()
|
||||
fn get_style_and_layout_data(self) -> Option<&'dom StyleAndLayoutData> {
|
||||
self.get_opaque_style_and_layout_data()
|
||||
.map(|opaque| opaque.downcast_ref().unwrap())
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ use atomic_refcell::{AtomicRef, AtomicRefMut};
|
|||
use gfx_traits::ByteIndex;
|
||||
use html5ever::{LocalName, Namespace};
|
||||
use layout::data::StyleAndLayoutData;
|
||||
use layout::wrapper::GetRawData;
|
||||
use layout::wrapper::GetStyleAndLayoutData;
|
||||
use msg::constellation_msg::{BrowsingContextId, PipelineId};
|
||||
use net_traits::image::base::{Image, ImageMetadata};
|
||||
use range::Range;
|
||||
|
@ -50,7 +50,7 @@ use script::layout_exports::{
|
|||
LayoutDom, LayoutElementHelpers, LayoutNodeHelpers, LayoutShadowRootHelpers,
|
||||
};
|
||||
use script_layout_interface::wrapper_traits::{
|
||||
DangerousThreadSafeLayoutNode, GetLayoutData, LayoutNode,
|
||||
DangerousThreadSafeLayoutNode, GetOpaqueStyleAndLayoutData, LayoutNode,
|
||||
};
|
||||
use script_layout_interface::wrapper_traits::{
|
||||
PseudoElementType, ThreadSafeLayoutElement, ThreadSafeLayoutNode,
|
||||
|
@ -268,18 +268,18 @@ impl<'ln> LayoutNode<'ln> for ServoLayoutNode<'ln> {
|
|||
}
|
||||
|
||||
unsafe fn initialize_data(&self) {
|
||||
if self.get_raw_data().is_none() {
|
||||
if self.get_style_and_layout_data().is_none() {
|
||||
let opaque = OpaqueStyleAndLayoutData::new(StyleAndLayoutData::new());
|
||||
self.init_style_and_layout_data(opaque);
|
||||
self.init_opaque_style_and_layout_data(opaque);
|
||||
};
|
||||
}
|
||||
|
||||
unsafe fn init_style_and_layout_data(&self, data: OpaqueStyleAndLayoutData) {
|
||||
self.get_jsmanaged().init_style_and_layout_data(data);
|
||||
unsafe fn init_opaque_style_and_layout_data(&self, data: OpaqueStyleAndLayoutData) {
|
||||
self.get_jsmanaged().init_opaque_style_and_layout_data(data);
|
||||
}
|
||||
|
||||
unsafe fn take_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData {
|
||||
self.get_jsmanaged().take_style_and_layout_data()
|
||||
unsafe fn take_opaque_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData {
|
||||
self.get_jsmanaged().take_opaque_style_and_layout_data()
|
||||
}
|
||||
|
||||
fn is_connected(&self) -> bool {
|
||||
|
@ -287,27 +287,27 @@ impl<'ln> LayoutNode<'ln> for ServoLayoutNode<'ln> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'dom> GetLayoutData<'dom> for ServoLayoutNode<'dom> {
|
||||
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
|
||||
self.get_jsmanaged().get_style_and_layout_data()
|
||||
impl<'dom> GetOpaqueStyleAndLayoutData<'dom> for ServoLayoutNode<'dom> {
|
||||
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
|
||||
self.get_jsmanaged().get_opaque_style_and_layout_data()
|
||||
}
|
||||
}
|
||||
|
||||
impl<'dom> GetLayoutData<'dom> for ServoLayoutElement<'dom> {
|
||||
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
|
||||
self.as_node().get_style_and_layout_data()
|
||||
impl<'dom> GetOpaqueStyleAndLayoutData<'dom> for ServoLayoutElement<'dom> {
|
||||
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
|
||||
self.as_node().get_opaque_style_and_layout_data()
|
||||
}
|
||||
}
|
||||
|
||||
impl<'dom> GetLayoutData<'dom> for ServoThreadSafeLayoutNode<'dom> {
|
||||
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
|
||||
self.node.get_style_and_layout_data()
|
||||
impl<'dom> GetOpaqueStyleAndLayoutData<'dom> for ServoThreadSafeLayoutNode<'dom> {
|
||||
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
|
||||
self.node.get_opaque_style_and_layout_data()
|
||||
}
|
||||
}
|
||||
|
||||
impl<'dom> GetLayoutData<'dom> for ServoThreadSafeLayoutElement<'dom> {
|
||||
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
|
||||
self.element.as_node().get_style_and_layout_data()
|
||||
impl<'dom> GetOpaqueStyleAndLayoutData<'dom> for ServoThreadSafeLayoutElement<'dom> {
|
||||
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
|
||||
self.element.as_node().get_opaque_style_and_layout_data()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -536,8 +536,8 @@ impl<'le> TElement for ServoLayoutElement<'le> {
|
|||
}
|
||||
|
||||
unsafe fn clear_data(&self) {
|
||||
if self.get_raw_data().is_some() {
|
||||
drop(self.as_node().take_style_and_layout_data());
|
||||
if self.get_style_and_layout_data().is_some() {
|
||||
drop(self.as_node().take_opaque_style_and_layout_data());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -695,7 +695,7 @@ impl<'le> ServoLayoutElement<'le> {
|
|||
}
|
||||
|
||||
fn get_style_data(&self) -> Option<&StyleData> {
|
||||
self.get_style_and_layout_data().map(|opaque| {
|
||||
self.get_opaque_style_and_layout_data().map(|opaque| {
|
||||
&opaque
|
||||
.downcast_ref::<StyleAndLayoutData>()
|
||||
.unwrap()
|
||||
|
@ -1045,8 +1045,8 @@ impl<'ln> ThreadSafeLayoutNode<'ln> for ServoThreadSafeLayoutNode<'ln> {
|
|||
})
|
||||
}
|
||||
|
||||
fn get_style_and_layout_data(self) -> Option<&'ln OpaqueStyleAndLayoutData> {
|
||||
self.node.get_style_and_layout_data()
|
||||
fn get_opaque_style_and_layout_data(self) -> Option<&'ln OpaqueStyleAndLayoutData> {
|
||||
self.node.get_opaque_style_and_layout_data()
|
||||
}
|
||||
|
||||
fn is_ignorable_whitespace(&self, context: &SharedStyleContext) -> bool {
|
||||
|
|
|
@ -34,7 +34,7 @@ use atomic_refcell::{AtomicRef, AtomicRefMut};
|
|||
use gfx_traits::ByteIndex;
|
||||
use html5ever::{LocalName, Namespace};
|
||||
use layout::data::StyleAndLayoutData;
|
||||
use layout::wrapper::GetRawData;
|
||||
use layout::wrapper::GetStyleAndLayoutData;
|
||||
use msg::constellation_msg::{BrowsingContextId, PipelineId};
|
||||
use net_traits::image::base::{Image, ImageMetadata};
|
||||
use range::Range;
|
||||
|
@ -50,7 +50,7 @@ use script::layout_exports::{
|
|||
LayoutDom, LayoutElementHelpers, LayoutNodeHelpers, LayoutShadowRootHelpers,
|
||||
};
|
||||
use script_layout_interface::wrapper_traits::{
|
||||
DangerousThreadSafeLayoutNode, GetLayoutData, LayoutNode,
|
||||
DangerousThreadSafeLayoutNode, GetOpaqueStyleAndLayoutData, LayoutNode,
|
||||
};
|
||||
use script_layout_interface::wrapper_traits::{
|
||||
PseudoElementType, ThreadSafeLayoutElement, ThreadSafeLayoutNode,
|
||||
|
@ -275,18 +275,18 @@ impl<'ln> LayoutNode<'ln> for ServoLayoutNode<'ln> {
|
|||
}
|
||||
|
||||
unsafe fn initialize_data(&self) {
|
||||
if self.get_raw_data().is_none() {
|
||||
if self.get_style_and_layout_data().is_none() {
|
||||
let opaque = OpaqueStyleAndLayoutData::new(StyleAndLayoutData::new());
|
||||
self.init_style_and_layout_data(opaque);
|
||||
self.init_opaque_style_and_layout_data(opaque);
|
||||
};
|
||||
}
|
||||
|
||||
unsafe fn init_style_and_layout_data(&self, data: OpaqueStyleAndLayoutData) {
|
||||
self.get_jsmanaged().init_style_and_layout_data(data);
|
||||
unsafe fn init_opaque_style_and_layout_data(&self, data: OpaqueStyleAndLayoutData) {
|
||||
self.get_jsmanaged().init_opaque_style_and_layout_data(data);
|
||||
}
|
||||
|
||||
unsafe fn take_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData {
|
||||
self.get_jsmanaged().take_style_and_layout_data()
|
||||
unsafe fn take_opaque_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData {
|
||||
self.get_jsmanaged().take_opaque_style_and_layout_data()
|
||||
}
|
||||
|
||||
fn is_connected(&self) -> bool {
|
||||
|
@ -294,27 +294,27 @@ impl<'ln> LayoutNode<'ln> for ServoLayoutNode<'ln> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'dom> GetLayoutData<'dom> for ServoLayoutNode<'dom> {
|
||||
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
|
||||
unsafe { self.get_jsmanaged().get_style_and_layout_data() }
|
||||
impl<'dom> GetOpaqueStyleAndLayoutData<'dom> for ServoLayoutNode<'dom> {
|
||||
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
|
||||
unsafe { self.get_jsmanaged().get_opaque_style_and_layout_data() }
|
||||
}
|
||||
}
|
||||
|
||||
impl<'dom> GetLayoutData<'dom> for ServoLayoutElement<'dom> {
|
||||
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
|
||||
self.as_node().get_style_and_layout_data()
|
||||
impl<'dom> GetOpaqueStyleAndLayoutData<'dom> for ServoLayoutElement<'dom> {
|
||||
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
|
||||
self.as_node().get_opaque_style_and_layout_data()
|
||||
}
|
||||
}
|
||||
|
||||
impl<'dom> GetLayoutData<'dom> for ServoThreadSafeLayoutNode<'dom> {
|
||||
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
|
||||
self.node.get_style_and_layout_data()
|
||||
impl<'dom> GetOpaqueStyleAndLayoutData<'dom> for ServoThreadSafeLayoutNode<'dom> {
|
||||
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
|
||||
self.node.get_opaque_style_and_layout_data()
|
||||
}
|
||||
}
|
||||
|
||||
impl<'dom> GetLayoutData<'dom> for ServoThreadSafeLayoutElement<'dom> {
|
||||
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
|
||||
self.element.as_node().get_style_and_layout_data()
|
||||
impl<'dom> GetOpaqueStyleAndLayoutData<'dom> for ServoThreadSafeLayoutElement<'dom> {
|
||||
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
|
||||
self.element.as_node().get_opaque_style_and_layout_data()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -544,8 +544,8 @@ impl<'le> TElement for ServoLayoutElement<'le> {
|
|||
}
|
||||
|
||||
unsafe fn clear_data(&self) {
|
||||
if self.get_raw_data().is_some() {
|
||||
drop(self.as_node().take_style_and_layout_data());
|
||||
if self.get_style_and_layout_data().is_some() {
|
||||
drop(self.as_node().take_opaque_style_and_layout_data());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -703,7 +703,7 @@ impl<'le> ServoLayoutElement<'le> {
|
|||
}
|
||||
|
||||
fn get_style_data(&self) -> Option<&StyleData> {
|
||||
self.get_style_and_layout_data().map(|opaque| {
|
||||
self.get_opaque_style_and_layout_data().map(|opaque| {
|
||||
&opaque
|
||||
.downcast_ref::<StyleAndLayoutData>()
|
||||
.unwrap()
|
||||
|
@ -1053,8 +1053,8 @@ impl<'ln> ThreadSafeLayoutNode<'ln> for ServoThreadSafeLayoutNode<'ln> {
|
|||
})
|
||||
}
|
||||
|
||||
fn get_style_and_layout_data(self) -> Option<&'ln OpaqueStyleAndLayoutData> {
|
||||
self.node.get_style_and_layout_data()
|
||||
fn get_opaque_style_and_layout_data(self) -> Option<&'ln OpaqueStyleAndLayoutData> {
|
||||
self.node.get_opaque_style_and_layout_data()
|
||||
}
|
||||
|
||||
fn is_ignorable_whitespace(&self, context: &SharedStyleContext) -> bool {
|
||||
|
|
|
@ -1282,9 +1282,9 @@ pub trait LayoutNodeHelpers<'dom> {
|
|||
|
||||
fn children_count(self) -> u32;
|
||||
|
||||
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData>;
|
||||
unsafe fn init_style_and_layout_data(self, data: OpaqueStyleAndLayoutData);
|
||||
unsafe fn take_style_and_layout_data(self) -> OpaqueStyleAndLayoutData;
|
||||
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData>;
|
||||
unsafe fn init_opaque_style_and_layout_data(self, data: OpaqueStyleAndLayoutData);
|
||||
unsafe fn take_opaque_style_and_layout_data(self) -> OpaqueStyleAndLayoutData;
|
||||
|
||||
fn text_content(self) -> Cow<'dom, str>;
|
||||
fn selection(self) -> Option<Range<usize>>;
|
||||
|
@ -1410,13 +1410,13 @@ impl<'dom> LayoutNodeHelpers<'dom> for LayoutDom<'dom, Node> {
|
|||
|
||||
#[inline]
|
||||
#[allow(unsafe_code)]
|
||||
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
|
||||
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData> {
|
||||
unsafe { (*self.unsafe_get().style_and_layout_data.get()).as_ref() }
|
||||
}
|
||||
|
||||
#[inline]
|
||||
#[allow(unsafe_code)]
|
||||
unsafe fn init_style_and_layout_data(self, val: OpaqueStyleAndLayoutData) {
|
||||
unsafe fn init_opaque_style_and_layout_data(self, val: OpaqueStyleAndLayoutData) {
|
||||
let data = &mut *self.unsafe_get().style_and_layout_data.get();
|
||||
debug_assert!(data.is_none());
|
||||
*data = Some(val);
|
||||
|
@ -1424,7 +1424,7 @@ impl<'dom> LayoutNodeHelpers<'dom> for LayoutDom<'dom, Node> {
|
|||
|
||||
#[inline]
|
||||
#[allow(unsafe_code)]
|
||||
unsafe fn take_style_and_layout_data(self) -> OpaqueStyleAndLayoutData {
|
||||
unsafe fn take_opaque_style_and_layout_data(self) -> OpaqueStyleAndLayoutData {
|
||||
(*self.unsafe_get().style_and_layout_data.get())
|
||||
.take()
|
||||
.unwrap()
|
||||
|
|
|
@ -79,13 +79,13 @@ impl PseudoElementType {
|
|||
}
|
||||
|
||||
/// Trait to abstract access to layout data across various data structures.
|
||||
pub trait GetLayoutData<'dom> {
|
||||
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData>;
|
||||
pub trait GetOpaqueStyleAndLayoutData<'dom> {
|
||||
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData>;
|
||||
}
|
||||
|
||||
/// A wrapper so that layout can access only the methods that it should have access to. Layout must
|
||||
/// only ever see these and must never see instances of `LayoutDom`.
|
||||
pub trait LayoutNode<'dom>: Debug + GetLayoutData<'dom> + TNode {
|
||||
pub trait LayoutNode<'dom>: Debug + GetOpaqueStyleAndLayoutData<'dom> + TNode {
|
||||
type ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode<'dom>;
|
||||
fn to_threadsafe(&self) -> Self::ConcreteThreadSafeLayoutNode;
|
||||
|
||||
|
@ -93,8 +93,8 @@ pub trait LayoutNode<'dom>: Debug + GetLayoutData<'dom> + TNode {
|
|||
fn type_id(&self) -> LayoutNodeType;
|
||||
|
||||
unsafe fn initialize_data(&self);
|
||||
unsafe fn init_style_and_layout_data(&self, data: OpaqueStyleAndLayoutData);
|
||||
unsafe fn take_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData;
|
||||
unsafe fn init_opaque_style_and_layout_data(&self, data: OpaqueStyleAndLayoutData);
|
||||
unsafe fn take_opaque_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData;
|
||||
|
||||
fn rev_children(self) -> LayoutIterator<ReverseChildrenIterator<Self>> {
|
||||
LayoutIterator(ReverseChildrenIterator {
|
||||
|
@ -160,7 +160,7 @@ where
|
|||
/// A thread-safe version of `LayoutNode`, used during flow construction. This type of layout
|
||||
/// node does not allow any parents or siblings of nodes to be accessed, to avoid races.
|
||||
pub trait ThreadSafeLayoutNode<'dom>:
|
||||
Clone + Copy + Debug + GetLayoutData<'dom> + NodeInfo + PartialEq + Sized
|
||||
Clone + Copy + Debug + GetOpaqueStyleAndLayoutData<'dom> + NodeInfo + PartialEq + Sized
|
||||
{
|
||||
type ConcreteNode: LayoutNode<'dom, ConcreteThreadSafeLayoutNode = Self>;
|
||||
type ConcreteElement: TElement;
|
||||
|
@ -224,7 +224,7 @@ pub trait ThreadSafeLayoutNode<'dom>:
|
|||
.map_or(PseudoElementType::Normal, |el| el.get_pseudo_element_type())
|
||||
}
|
||||
|
||||
fn get_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData>;
|
||||
fn get_opaque_style_and_layout_data(self) -> Option<&'dom OpaqueStyleAndLayoutData>;
|
||||
|
||||
fn style(&self, context: &SharedStyleContext) -> Arc<ComputedValues> {
|
||||
if let Some(el) = self.as_element() {
|
||||
|
@ -314,7 +314,12 @@ pub trait DangerousThreadSafeLayoutNode<'dom>: ThreadSafeLayoutNode<'dom> {
|
|||
}
|
||||
|
||||
pub trait ThreadSafeLayoutElement<'dom>:
|
||||
Clone + Copy + Sized + Debug + ::selectors::Element<Impl = SelectorImpl> + GetLayoutData<'dom>
|
||||
Clone
|
||||
+ Copy
|
||||
+ Sized
|
||||
+ Debug
|
||||
+ ::selectors::Element<Impl = SelectorImpl>
|
||||
+ GetOpaqueStyleAndLayoutData<'dom>
|
||||
{
|
||||
type ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode<
|
||||
'dom,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue