Skip to content

Commit

Permalink
Auto merge of #18620 - emilio:bye-unsafe-node, r=glennw
Browse files Browse the repository at this point in the history
style: Remove UnsafeNode.

No longer needed since a while ago.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18620)
<!-- Reviewable:end -->
  • Loading branch information
bors-servo committed Sep 25, 2017
2 parents cc4dd58 + e3c58df commit 4628db1
Show file tree
Hide file tree
Showing 5 changed files with 3 additions and 43 deletions.
10 changes: 1 addition & 9 deletions components/layout/parallel.rs
Expand Up @@ -17,21 +17,13 @@ use servo_config::opts;
use smallvec::SmallVec;
use std::mem;
use std::sync::atomic::{AtomicIsize, Ordering};
use style::dom::UnsafeNode;
use traversal::{AssignBSizes, AssignISizes, BubbleISizes};
use traversal::{PostorderFlowTraversal, PreorderFlowTraversal};

/// Traversal chunk size.
const CHUNK_SIZE: usize = 16;

pub type FlowList = SmallVec<[UnsafeNode; CHUNK_SIZE]>;

#[allow(dead_code)]
fn static_assertion(node: UnsafeNode) {
unsafe {
let _: UnsafeFlow = ::std::intrinsics::transmute(node);
}
}
pub type FlowList = SmallVec<[UnsafeFlow; CHUNK_SIZE]>;

/// Vtable + pointer representation of a Flow trait object.
pub type UnsafeFlow = (usize, usize);
Expand Down
14 changes: 1 addition & 13 deletions components/layout_thread/dom_wrapper.rs
Expand Up @@ -61,7 +61,6 @@ use std::fmt;
use std::fmt::Debug;
use std::hash::{Hash, Hasher};
use std::marker::PhantomData;
use std::mem::transmute;
use std::sync::atomic::Ordering;
use style::CaseSensitivityExt;
use style::applicable_declarations::ApplicableDeclarationBlock;
Expand All @@ -70,7 +69,7 @@ use style::computed_values::display;
use style::context::SharedStyleContext;
use style::data::ElementData;
use style::dom::{LayoutIterator, NodeInfo, OpaqueNode};
use style::dom::{PresentationalHintsSynthesizer, TElement, TNode, UnsafeNode};
use style::dom::{PresentationalHintsSynthesizer, TElement, TNode};
use style::element_state::*;
use style::font_metrics::ServoMetricsProvider;
use style::properties::{ComputedValues, PropertyDeclarationBlock};
Expand Down Expand Up @@ -162,17 +161,6 @@ impl<'ln> TNode for ServoLayoutNode<'ln> {
type ConcreteElement = ServoLayoutElement<'ln>;
type ConcreteChildrenIterator = ServoChildrenIterator<'ln>;

fn to_unsafe(&self) -> UnsafeNode {
unsafe {
(self.node.unsafe_get() as usize, 0)
}
}

unsafe fn from_unsafe(n: &UnsafeNode) -> Self {
let (node, _) = *n;
transmute(node)
}

fn parent_node(&self) -> Option<Self> {
unsafe {
self.node.parent_node_ref().map(|node| self.new_with_this_lifetime(&node))
Expand Down
8 changes: 0 additions & 8 deletions components/style/dom.rs
Expand Up @@ -35,8 +35,6 @@ use std::ops::Deref;
use stylist::Stylist;
use traversal_flags::{TraversalFlags, self};

pub use style_traits::UnsafeNode;

/// An opaque handle to a node, which, unlike UnsafeNode, cannot be transformed
/// back into a non-opaque representation. The only safe operation that can be
/// performed on this node is to compare it to another opaque handle or to another
Expand Down Expand Up @@ -105,12 +103,6 @@ pub trait TNode : Sized + Copy + Clone + Debug + NodeInfo {
/// syntax.
type ConcreteChildrenIterator: Iterator<Item = Self>;

/// Convert this node in an `UnsafeNode`.
fn to_unsafe(&self) -> UnsafeNode;

/// Get a node back from an `UnsafeNode`.
unsafe fn from_unsafe(n: &UnsafeNode) -> Self;

/// Get this node's parent node.
fn parent_node(&self) -> Option<Self>;

Expand Down
10 changes: 1 addition & 9 deletions components/style/gecko/wrapper.rs
Expand Up @@ -20,7 +20,7 @@ use applicable_declarations::ApplicableDeclarationBlock;
use atomic_refcell::{AtomicRefCell, AtomicRefMut};
use context::{QuirksMode, SharedStyleContext, PostAnimationTasks, UpdateAnimationsTasks};
use data::ElementData;
use dom::{LayoutIterator, NodeInfo, TElement, TNode, UnsafeNode};
use dom::{LayoutIterator, NodeInfo, TElement, TNode};
use dom::{OpaqueNode, PresentationalHintsSynthesizer};
use element_state::{ElementState, DocumentState, NS_DOCUMENT_STATE_WINDOW_INACTIVE};
use error_reporting::ParseErrorReporter;
Expand Down Expand Up @@ -246,14 +246,6 @@ impl<'ln> TNode for GeckoNode<'ln> {
type ConcreteElement = GeckoElement<'ln>;
type ConcreteChildrenIterator = GeckoChildrenIterator<'ln>;

fn to_unsafe(&self) -> UnsafeNode {
(self.0 as *const _ as usize, 0)
}

unsafe fn from_unsafe(n: &UnsafeNode) -> Self {
GeckoNode(&*(n.0 as *mut RawGeckoNode))
}

fn parent_node(&self) -> Option<Self> {
unsafe { self.0.mParent.as_ref().map(GeckoNode) }
}
Expand Down
4 changes: 0 additions & 4 deletions components/style_traits/lib.rs
Expand Up @@ -39,10 +39,6 @@ use selectors::parser::SelectorParseError;
#[derive(Clone, Copy, Debug)]
pub enum DevicePixel {}

/// Opaque type stored in type-unsafe work queues for parallel layout.
/// Must be transmutable to and from `TNode`.
pub type UnsafeNode = (usize, usize);

/// Represents a mobile style pinch zoom factor.
/// TODO(gw): Once WR supports pinch zoom, use a type directly from webrender_api.
#[derive(Clone, Copy, Debug, PartialEq)]
Expand Down

0 comments on commit 4628db1

Please sign in to comment.