script: Inline some hot functions used in flow constructions.

9% improvement in style recalc on the rainbow page.
This commit is contained in:
Patrick Walton 2014-01-30 18:05:12 -08:00
parent e2e848c6ad
commit a0fbc04ba5
3 changed files with 12 additions and 0 deletions

View file

@ -208,6 +208,7 @@ impl Clone for AbstractNode {
}
impl AbstractNode {
#[inline]
pub fn node<'a>(&'a self) -> &'a Node {
unsafe {
let box_: *mut Box<Node> = cast::transmute(self.obj);
@ -215,6 +216,7 @@ impl AbstractNode {
}
}
#[inline]
pub fn mut_node<'a>(&'a self) -> &'a mut Node {
unsafe {
let box_: *mut Box<Node> = cast::transmute(self.obj);
@ -222,14 +224,17 @@ impl AbstractNode {
}
}
#[inline]
pub fn parent_node(&self) -> Option<AbstractNode> {
self.node().parent_node
}
#[inline]
pub fn first_child(&self) -> Option<AbstractNode> {
self.node().first_child
}
#[inline]
pub fn last_child(&self) -> Option<AbstractNode> {
self.node().last_child
}
@ -316,6 +321,7 @@ impl<'a> AbstractNode {
// Convenience accessors
/// Returns the type ID of this node. Fails if this node is borrowed mutably.
#[inline]
pub fn type_id(self) -> NodeTypeId {
self.node().type_id
}