mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Replace TLayoutNode by inherent methods.
There is no reason for this trait to exist.
This commit is contained in:
parent
50d4084e9a
commit
167a396293
3 changed files with 15 additions and 28 deletions
|
@ -14,7 +14,7 @@ use std::cell::{Ref, RefMut};
|
||||||
use std::mem;
|
use std::mem;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use style::properties::ComputedValues;
|
use style::properties::ComputedValues;
|
||||||
use wrapper::{LayoutNode, TLayoutNode};
|
use wrapper::LayoutNode;
|
||||||
|
|
||||||
/// Data that layout associates with a node.
|
/// Data that layout associates with a node.
|
||||||
pub struct PrivateLayoutData {
|
pub struct PrivateLayoutData {
|
||||||
|
|
|
@ -10,7 +10,7 @@ use script::dom::bindings::js::LayoutJS;
|
||||||
use script::dom::node::Node;
|
use script::dom::node::Node;
|
||||||
use script::layout_interface::{TrustedNodeAddress};
|
use script::layout_interface::{TrustedNodeAddress};
|
||||||
use script_traits::UntrustedNodeAddress;
|
use script_traits::UntrustedNodeAddress;
|
||||||
use wrapper::{LayoutNode, TLayoutNode, ThreadSafeLayoutNode};
|
use wrapper::{LayoutNode, ThreadSafeLayoutNode};
|
||||||
|
|
||||||
pub trait OpaqueNodeMethods {
|
pub trait OpaqueNodeMethods {
|
||||||
/// Converts a DOM node (layout view) to an `OpaqueNode`.
|
/// Converts a DOM node (layout view) to an `OpaqueNode`.
|
||||||
|
|
|
@ -75,16 +75,6 @@ use style::node::{TElement, TElementAttributes, TNode};
|
||||||
use style::properties::{PropertyDeclaration, PropertyDeclarationBlock};
|
use style::properties::{PropertyDeclaration, PropertyDeclarationBlock};
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
/// Allows some convenience methods on generic layout nodes.
|
|
||||||
pub trait TLayoutNode {
|
|
||||||
/// Creates a new layout node with the same lifetime as this layout node.
|
|
||||||
unsafe fn new_with_this_lifetime(&self, node: &LayoutJS<Node>) -> Self;
|
|
||||||
|
|
||||||
/// Returns the interior of this node as a `LayoutJS`. This is highly unsafe for layout to
|
|
||||||
/// call and as such is marked `unsafe`.
|
|
||||||
unsafe fn get_jsmanaged<'a>(&'a self) -> &'a LayoutJS<Node>;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// A wrapper so that layout can access only the methods that it should have access to. Layout must
|
/// 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 `LayoutJS`.
|
/// only ever see these and must never see instances of `LayoutJS`.
|
||||||
#[derive(Copy, Clone)]
|
#[derive(Copy, Clone)]
|
||||||
|
@ -103,20 +93,15 @@ impl<'a> PartialEq for LayoutNode<'a> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'ln> TLayoutNode for LayoutNode<'ln> {
|
impl<'ln> LayoutNode<'ln> {
|
||||||
unsafe fn new_with_this_lifetime(&self, node: &LayoutJS<Node>) -> LayoutNode<'ln> {
|
/// Creates a new layout node with the same lifetime as this layout node.
|
||||||
|
pub unsafe fn new_with_this_lifetime(&self, node: &LayoutJS<Node>) -> LayoutNode<'ln> {
|
||||||
LayoutNode {
|
LayoutNode {
|
||||||
node: *node,
|
node: *node,
|
||||||
chain: self.chain,
|
chain: self.chain,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe fn get_jsmanaged<'a>(&'a self) -> &'a LayoutJS<Node> {
|
|
||||||
&self.node
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'ln> LayoutNode<'ln> {
|
|
||||||
/// Returns the type ID of this node.
|
/// Returns the type ID of this node.
|
||||||
pub fn type_id(&self) -> NodeTypeId {
|
pub fn type_id(&self) -> NodeTypeId {
|
||||||
unsafe {
|
unsafe {
|
||||||
|
@ -179,6 +164,8 @@ impl<'ln> LayoutNode<'ln> {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns the interior of this node as a `LayoutJS`. This is highly unsafe for layout to
|
||||||
|
/// call and as such is marked `unsafe`.
|
||||||
pub unsafe fn get_jsmanaged<'a>(&'a self) -> &'a LayoutJS<Node> {
|
pub unsafe fn get_jsmanaged<'a>(&'a self) -> &'a LayoutJS<Node> {
|
||||||
&self.node
|
&self.node
|
||||||
}
|
}
|
||||||
|
@ -603,21 +590,15 @@ pub struct ThreadSafeLayoutNode<'ln> {
|
||||||
pseudo: PseudoElementType,
|
pseudo: PseudoElementType,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'ln> TLayoutNode for ThreadSafeLayoutNode<'ln> {
|
impl<'ln> ThreadSafeLayoutNode<'ln> {
|
||||||
/// Creates a new layout node with the same lifetime as this layout node.
|
/// Creates a new layout node with the same lifetime as this layout node.
|
||||||
unsafe fn new_with_this_lifetime(&self, node: &LayoutJS<Node>) -> ThreadSafeLayoutNode<'ln> {
|
pub unsafe fn new_with_this_lifetime(&self, node: &LayoutJS<Node>) -> ThreadSafeLayoutNode<'ln> {
|
||||||
ThreadSafeLayoutNode {
|
ThreadSafeLayoutNode {
|
||||||
node: self.node.new_with_this_lifetime(node),
|
node: self.node.new_with_this_lifetime(node),
|
||||||
pseudo: PseudoElementType::Normal,
|
pseudo: PseudoElementType::Normal,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe fn get_jsmanaged<'a>(&'a self) -> &'a LayoutJS<Node> {
|
|
||||||
self.node.get_jsmanaged()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'ln> ThreadSafeLayoutNode<'ln> {
|
|
||||||
/// Creates a new `ThreadSafeLayoutNode` from the given `LayoutNode`.
|
/// Creates a new `ThreadSafeLayoutNode` from the given `LayoutNode`.
|
||||||
pub fn new<'a>(node: &LayoutNode<'a>) -> ThreadSafeLayoutNode<'a> {
|
pub fn new<'a>(node: &LayoutNode<'a>) -> ThreadSafeLayoutNode<'a> {
|
||||||
ThreadSafeLayoutNode {
|
ThreadSafeLayoutNode {
|
||||||
|
@ -635,6 +616,12 @@ impl<'ln> ThreadSafeLayoutNode<'ln> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns the interior of this node as a `LayoutJS`. This is highly unsafe for layout to
|
||||||
|
/// call and as such is marked `unsafe`.
|
||||||
|
pub unsafe fn get_jsmanaged<'a>(&'a self) -> &'a LayoutJS<Node> {
|
||||||
|
self.node.get_jsmanaged()
|
||||||
|
}
|
||||||
|
|
||||||
/// Returns the type ID of this node.
|
/// Returns the type ID of this node.
|
||||||
/// Returns `None` if this is a pseudo-element; otherwise, returns `Some`.
|
/// Returns `None` if this is a pseudo-element; otherwise, returns `Some`.
|
||||||
pub fn type_id(&self) -> Option<NodeTypeId> {
|
pub fn type_id(&self) -> Option<NodeTypeId> {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue