aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/layout/fragment.rs4
-rw-r--r--components/layout/inline.rs6
-rw-r--r--components/style/lib.rs10
-rw-r--r--components/style/matching.rs2
-rw-r--r--components/util/lib.rs10
-rw-r--r--ports/geckolib/glue.rs2
6 files changed, 17 insertions, 17 deletions
diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs
index 8092985f401..5d101ffc4d2 100644
--- a/components/layout/fragment.rs
+++ b/components/layout/fragment.rs
@@ -37,6 +37,7 @@ use std::cmp::{max, min};
use std::collections::LinkedList;
use std::fmt;
use std::sync::{Arc, Mutex};
+use style::arc_ptr_eq;
use style::computed_values::content::ContentItem;
use style::computed_values::{border_collapse, clear, color, display, mix_blend_mode};
use style::computed_values::{overflow_wrap, overflow_x, position, text_decoration};
@@ -50,7 +51,6 @@ use style::values::computed::{LengthOrPercentage, LengthOrPercentageOrAuto};
use text;
use text::TextRunScanner;
use url::Url;
-use util;
/// Fragments (`struct Fragment`) are the leaves of the layout tree. They cannot position
/// themselves. In general, fragments do not have a simple correspondence with CSS fragments in the
@@ -1732,7 +1732,7 @@ impl Fragment {
match (&mut self.specific, &next_fragment.specific) {
(&mut SpecificFragmentInfo::ScannedText(ref mut this_info),
&SpecificFragmentInfo::ScannedText(ref other_info)) => {
- debug_assert!(util::arc_ptr_eq(&this_info.run, &other_info.run));
+ debug_assert!(arc_ptr_eq(&this_info.run, &other_info.run));
this_info.range_end_including_stripped_whitespace =
other_info.range_end_including_stripped_whitespace;
if other_info.requires_line_break_afterward_if_wrapping_on_newlines() {
diff --git a/components/layout/inline.rs b/components/layout/inline.rs
index 5d7cbffb970..42dd01d87b9 100644
--- a/components/layout/inline.rs
+++ b/components/layout/inline.rs
@@ -32,6 +32,7 @@ use std::cmp::max;
use std::collections::VecDeque;
use std::sync::Arc;
use std::{fmt, i32, isize, mem};
+use style::arc_ptr_eq;
use style::computed_values::{display, overflow_x, position, text_align, text_justify};
use style::computed_values::{text_overflow, vertical_align, white_space};
use style::context::StyleContext;
@@ -41,7 +42,6 @@ use style::servo::SharedStyleContext;
use style::values::computed::LengthOrPercentage;
use text;
use unicode_bidi;
-use util;
// From gfxFontConstants.h in Firefox
static FONT_SUBSCRIPT_OFFSET_RATIO: f32 = 0.20;
@@ -360,7 +360,7 @@ impl LineBreaker {
(&mut SpecificFragmentInfo::ScannedText(ref mut result_info),
&SpecificFragmentInfo::ScannedText(ref candidate_info)) => {
result_info.selected() == candidate_info.selected() &&
- util::arc_ptr_eq(&result_info.run, &candidate_info.run) &&
+ arc_ptr_eq(&result_info.run, &candidate_info.run) &&
inline_contexts_are_equal(&result.inline_context,
&candidate.inline_context)
}
@@ -1780,7 +1780,7 @@ impl InlineFragmentContext {
return false
}
for (this_node, other_node) in self.nodes.iter().zip(&other.nodes) {
- if !util::arc_ptr_eq(&this_node.style, &other_node.style) {
+ if !arc_ptr_eq(&this_node.style, &other_node.style) {
return false
}
}
diff --git a/components/style/lib.rs b/components/style/lib.rs
index 7fe5fe1bcca..d92524c8877 100644
--- a/components/style/lib.rs
+++ b/components/style/lib.rs
@@ -103,6 +103,8 @@ pub mod values;
pub mod viewport;
pub mod workqueue;
+use std::sync::Arc;
+
/// The CSS properties supported by the style system.
// Generated from the properties.mako.rs template by build.rs
#[macro_use]
@@ -126,3 +128,11 @@ macro_rules! reexport_computed_values {
}
}
longhand_properties_idents!(reexport_computed_values);
+
+/// Returns whether the two arguments point to the same value.
+#[inline]
+pub fn arc_ptr_eq<T: 'static>(a: &Arc<T>, b: &Arc<T>) -> bool {
+ let a: &T = &**a;
+ let b: &T = &**b;
+ (a as *const T) == (b as *const T)
+}
diff --git a/components/style/matching.rs b/components/style/matching.rs
index 8b843844fbc..251d46d70b6 100644
--- a/components/style/matching.rs
+++ b/components/style/matching.rs
@@ -7,6 +7,7 @@
#![allow(unsafe_code)]
use animation::{self, Animation};
+use arc_ptr_eq;
use cache::{LRUCache, SimpleHashCache};
use context::{StyleContext, SharedStyleContext};
use data::PrivateStyleData;
@@ -25,7 +26,6 @@ use std::hash::{BuildHasherDefault, Hash, Hasher};
use std::slice::Iter;
use std::sync::Arc;
use string_cache::{Atom, Namespace};
-use util::arc_ptr_eq;
use util::opts;
fn create_common_style_affecting_attributes_from_element<E: TElement>(element: &E)
diff --git a/components/util/lib.rs b/components/util/lib.rs
index bcad9ea3705..2e57d5a5f4b 100644
--- a/components/util/lib.rs
+++ b/components/util/lib.rs
@@ -26,8 +26,6 @@ extern crate url;
#[cfg(all(unix, not(target_os = "macos"), not(target_os = "ios"), not(target_os = "android")))]
extern crate xdg;
-use std::sync::Arc;
-
pub mod basedir;
pub mod geometry;
#[cfg(feature = "servo")] #[allow(unsafe_code)] pub mod ipc;
@@ -38,14 +36,6 @@ pub mod resource_files;
pub mod thread;
pub mod thread_state;
-// Workaround for lack of `ptr_eq` on Arcs...
-#[inline]
-pub fn arc_ptr_eq<T: 'static>(a: &Arc<T>, b: &Arc<T>) -> bool {
- let a: &T = &**a;
- let b: &T = &**b;
- (a as *const T) == (b as *const T)
-}
-
pub fn servo_version() -> &'static str {
concat!("Servo ", env!("CARGO_PKG_VERSION"), env!("GIT_INFO"))
}
diff --git a/ports/geckolib/glue.rs b/ports/geckolib/glue.rs
index f1650be83f6..32a0f6a6016 100644
--- a/ports/geckolib/glue.rs
+++ b/ports/geckolib/glue.rs
@@ -22,6 +22,7 @@ use std::ptr;
use std::slice;
use std::str::from_utf8_unchecked;
use std::sync::{Arc, Mutex};
+use style::arc_ptr_eq;
use style::context::{LocalStyleContextCreationInfo, ReflowGoal};
use style::dom::{TDocument, TElement, TNode};
use style::error_reporting::StdoutErrorReporter;
@@ -33,7 +34,6 @@ use style::sequential;
use style::stylesheets::Origin;
use traversal::RecalcStyleOnly;
use url::Url;
-use util::arc_ptr_eq;
use wrapper::{GeckoDocument, GeckoElement, GeckoNode, NonOpaqueStyleData};
// TODO: This is ugly and should go away once we get an atom back-end.