aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2015-04-27 18:13:32 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2015-04-28 09:22:45 +0200
commit2770886196269d264d46b0357669bbd0f9626995 (patch)
tree339b8bf04efbfd94db599ee88e594982844e9163 /components/script/dom
parentaf21229c0e9127cf2469280288b8484d2de82861 (diff)
downloadservo-2770886196269d264d46b0357669bbd0f9626995.tar.gz
servo-2770886196269d264d46b0357669bbd0f9626995.zip
Remove unrooted() methods
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/bindings/js.rs33
-rw-r--r--components/script/dom/document.rs4
-rw-r--r--components/script/dom/htmlcanvaselement.rs6
3 files changed, 10 insertions, 33 deletions
diff --git a/components/script/dom/bindings/js.rs b/components/script/dom/bindings/js.rs
index b798d6c1e27..4f953d6bb61 100644
--- a/components/script/dom/bindings/js.rs
+++ b/components/script/dom/bindings/js.rs
@@ -174,10 +174,6 @@ impl<T: Reflectable> Temporary<T> {
pub fn from_rooted<'a>(root: JSRef<'a, T>) -> Temporary<T> {
Temporary::new(JS::from_rooted(root))
}
-
- unsafe fn inner(&self) -> JS<T> {
- self.inner.clone()
- }
}
impl<T: Reflectable> Rootable<T> for Temporary<T> {
@@ -406,7 +402,7 @@ impl<T: Reflectable> JS<T> {
/// are reachable in the GC graph, so this unrooted value becomes
/// transitively rooted for the lifetime of its new owner.
pub fn assign(&mut self, val: Temporary<T>) {
- *self = unsafe { val.inner() };
+ *self = val.inner.clone();
}
}
@@ -461,13 +457,15 @@ impl<T> Assignable<T> for JS<T> {
impl<'a, T: Reflectable> Assignable<T> for JSRef<'a, T> {
unsafe fn get_js(&self) -> JS<T> {
- self.unrooted()
+ JS {
+ ptr: self.ptr
+ }
}
}
impl<T: Reflectable> Assignable<T> for Temporary<T> {
unsafe fn get_js(&self) -> JS<T> {
- self.inner()
+ self.inner.clone()
}
}
@@ -484,18 +482,6 @@ impl<T: Reflectable, U: Rootable<T>> OptionalRootable<T> for Option<U> {
}
}
-/// Return an unrooted type for storing in optional DOM fields
-pub trait OptionalUnrootable<T> {
- /// Returns a `JS<T>` for the inner value, if it exists.
- fn unrooted(&self) -> Option<JS<T>>;
-}
-
-impl<'a, T: Reflectable> OptionalUnrootable<T> for Option<JSRef<'a, T>> {
- fn unrooted(&self) -> Option<JS<T>> {
- self.as_ref().map(|inner| JS::from_rooted(*inner))
- }
-}
-
/// Root a rootable `Option<Option>` type (used for `Option<Option<JS<T>>>`)
pub trait OptionalOptionalRootable<T> {
/// Root the inner value, if it exists.
@@ -692,15 +678,6 @@ impl<'a, 'b, T> PartialEq<JSRef<'b, T>> for JSRef<'a, T> {
}
}
-impl<'a,T> JSRef<'a,T> {
- /// Return an unrooted `JS<T>` for the inner pointer.
- pub fn unrooted(&self) -> JS<T> {
- JS {
- ptr: self.ptr
- }
- }
-}
-
impl<'a, T: Reflectable> JSRef<'a, T> {
/// Returns the inner pointer directly.
pub fn extended_deref(self) -> &'a T {
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index 1749177d22b..19b5c74af0e 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -341,7 +341,7 @@ impl<'a> DocumentHelpers<'a> for JSRef<'a, Document> {
match idmap.entry(id) {
Vacant(entry) => {
- entry.insert(vec!(element.unrooted()));
+ entry.insert(vec![JS::from_rooted(element)]);
}
Occupied(entry) => {
let elements = entry.into_mut();
@@ -889,7 +889,7 @@ impl<'a> PrivateDocumentHelpers for JSRef<'a, Document> {
for node in NodeCast::from_ref(root.r()).traverse_preorder() {
let node = node.root();
if callback(node.r()) {
- nodes.push(node.r().unrooted());
+ nodes.push(JS::from_rooted(node.r()));
}
}
};
diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs
index b9f2ba1cd7a..f4ce2ecfc13 100644
--- a/components/script/dom/htmlcanvaselement.rs
+++ b/components/script/dom/htmlcanvaselement.rs
@@ -129,7 +129,7 @@ impl<'a> HTMLCanvasElementHelpers for JSRef<'a, HTMLCanvasElement> {
let context = self.GetContext(String::from_str("2d"));
match context.unwrap() {
CanvasRenderingContext2DOrWebGLRenderingContext::eCanvasRenderingContext2D(context) => {
- Temporary::new(context.root().r().unrooted())
+ Temporary::from_unrooted(context)
}
_ => panic!("Wrong Context Type: Expected 2d context"),
}
@@ -139,8 +139,8 @@ impl<'a> HTMLCanvasElementHelpers for JSRef<'a, HTMLCanvasElement> {
let context = self.GetContext(String::from_str("webgl"));
match context.unwrap() {
CanvasRenderingContext2DOrWebGLRenderingContext::eWebGLRenderingContext(context) => {
- return Temporary::new(context.root().r().unrooted());
- }
+ Temporary::from_unrooted(context)
+ },
_ => panic!("Wrong Context Type: Expected webgl context"),
}
}