aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-10-15 15:00:00 -0600
committerbors-servo <metajack+bors@gmail.com>2015-10-15 15:00:00 -0600
commit9d5f09e09c64d878e6c2bb273195c3c6ca9fe82c (patch)
treec027369e6a9df652db47366b6bb9da503849f0e5 /components/script
parent6f1db0fcd3ef861f61bed6b75aae63d738e575ba (diff)
parent8819f0d8b86a59acbad9b3127171fce4728b0cdd (diff)
downloadservo-9d5f09e09c64d878e6c2bb273195c3c6ca9fe82c.tar.gz
servo-9d5f09e09c64d878e6c2bb273195c3c6ca9fe82c.zip
Auto merge of #8030 - Manishearth:fix-lint-fn, r=frewsxcv
Fix unrooted_must_root lint to handle arguments/return types properly r? @jdm <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8030) <!-- Reviewable:end -->
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/bindings/global.rs1
-rw-r--r--components/script/dom/bindings/js.rs4
-rw-r--r--components/script/dom/node.rs2
-rw-r--r--components/script/dom/servohtmlparser.rs1
-rw-r--r--components/script/dom/webglrenderingcontext.rs8
-rw-r--r--components/script/page.rs1
6 files changed, 12 insertions, 5 deletions
diff --git a/components/script/dom/bindings/global.rs b/components/script/dom/bindings/global.rs
index ea170ab2463..bc5987ae7f7 100644
--- a/components/script/dom/bindings/global.rs
+++ b/components/script/dom/bindings/global.rs
@@ -210,6 +210,7 @@ impl GlobalRoot {
impl GlobalField {
/// Create a new `GlobalField` from a rooted reference.
+ #[allow(unrooted_must_root)]
pub fn from_rooted(global: &GlobalRef) -> GlobalField {
match *global {
GlobalRef::Window(window) => GlobalField::Window(JS::from_ref(window)),
diff --git a/components/script/dom/bindings/js.rs b/components/script/dom/bindings/js.rs
index e39e5c1f412..16fa12e7189 100644
--- a/components/script/dom/bindings/js.rs
+++ b/components/script/dom/bindings/js.rs
@@ -67,12 +67,14 @@ impl<T: Reflectable> JS<T> {
}
/// Create a JS<T> from a Root<T>
/// XXX Not a great API. Should be a call on Root<T> instead
+ #[allow(unrooted_must_root)]
pub fn from_rooted(root: &Root<T>) -> JS<T> {
JS {
ptr: unsafe { NonZero::new(&**root) }
}
}
/// Create a JS<T> from a &T
+ #[allow(unrooted_must_root)]
pub fn from_ref(obj: &T) -> JS<T> {
JS {
ptr: unsafe { NonZero::new(&*obj) }
@@ -125,6 +127,7 @@ impl<T> PartialEq for LayoutJS<T> {
impl <T> Clone for JS<T> {
#[inline]
+ #[allow(unrooted_must_root)]
fn clone(&self) -> JS<T> {
JS {
ptr: self.ptr.clone()
@@ -288,6 +291,7 @@ impl<T: Reflectable> MutNullableHeap<JS<T>> {
}
impl<T: HeapGCValue + Copy> Default for MutNullableHeap<T> {
+ #[allow(unrooted_must_root)]
fn default() -> MutNullableHeap<T> {
MutNullableHeap {
ptr: Cell::new(None)
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs
index 2f9762cd4de..d5e7f5c6e83 100644
--- a/components/script/dom/node.rs
+++ b/components/script/dom/node.rs
@@ -1352,10 +1352,12 @@ impl Node {
Node::new_(flags, Some(doc))
}
+ #[allow(unrooted_must_root)]
pub fn new_document_node() -> Node {
Node::new_(NodeFlags::new() | IS_IN_DOC, None)
}
+ #[allow(unrooted_must_root)]
fn new_(flags: NodeFlags, doc: Option<&Document>) -> Node {
Node {
eventtarget: EventTarget::new_inherited(),
diff --git a/components/script/dom/servohtmlparser.rs b/components/script/dom/servohtmlparser.rs
index fd854768347..acea9113127 100644
--- a/components/script/dom/servohtmlparser.rs
+++ b/components/script/dom/servohtmlparser.rs
@@ -43,6 +43,7 @@ pub struct Sink {
}
impl Sink {
+ #[allow(unrooted_must_root)] // method is only run at parse time
pub fn get_or_create(&self, child: NodeOrText<JS<Node>>) -> Root<Node> {
match child {
NodeOrText::AppendNode(n) => n.root(),
diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs
index 2fd87cfd19d..f5a3569da13 100644
--- a/components/script/dom/webglrenderingcontext.rs
+++ b/components/script/dom/webglrenderingcontext.rs
@@ -147,10 +147,10 @@ impl WebGLRenderingContext {
}
}
- pub fn bound_texture_for(&self, target: u32) -> Option<JS<WebGLTexture>> {
+ pub fn bound_texture_for(&self, target: u32) -> Option<Root<WebGLTexture>> {
match target {
- constants::TEXTURE_2D => self.bound_texture_2d.get(),
- constants::TEXTURE_CUBE_MAP => self.bound_texture_cube_map.get(),
+ constants::TEXTURE_2D => self.bound_texture_2d.get().map(|t| t.root()),
+ constants::TEXTURE_CUBE_MAP => self.bound_texture_cube_map.get().map(|t| t.root()),
_ => unreachable!(),
}
@@ -906,7 +906,6 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
constants::TEXTURE_2D |
constants::TEXTURE_CUBE_MAP => {
if let Some(texture) = self.bound_texture_for(target) {
- let texture = texture.root();
let result = texture.r().tex_parameter(target, name, TexParameterValue::Float(value));
handle_potential_webgl_error!(self, result);
} else {
@@ -924,7 +923,6 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
constants::TEXTURE_2D |
constants::TEXTURE_CUBE_MAP => {
if let Some(texture) = self.bound_texture_for(target) {
- let texture = texture.root();
let result = texture.r().tex_parameter(target, name, TexParameterValue::Int(value));
handle_potential_webgl_error!(self, result);
} else {
diff --git a/components/script/page.rs b/components/script/page.rs
index ce778d8bca9..b6b35c6119a 100644
--- a/components/script/page.rs
+++ b/components/script/page.rs
@@ -119,6 +119,7 @@ impl Page {
old
}
+ #[allow(unrooted_must_root)]
pub fn set_frame(&self, frame: Option<Frame>) {
*self.frame.borrow_mut() = frame;
}