diff options
author | bors-servo <metajack+bors@gmail.com> | 2015-10-15 15:00:00 -0600 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2015-10-15 15:00:00 -0600 |
commit | 9d5f09e09c64d878e6c2bb273195c3c6ca9fe82c (patch) | |
tree | c027369e6a9df652db47366b6bb9da503849f0e5 /components/script | |
parent | 6f1db0fcd3ef861f61bed6b75aae63d738e575ba (diff) | |
parent | 8819f0d8b86a59acbad9b3127171fce4728b0cdd (diff) | |
download | servo-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.rs | 1 | ||||
-rw-r--r-- | components/script/dom/bindings/js.rs | 4 | ||||
-rw-r--r-- | components/script/dom/node.rs | 2 | ||||
-rw-r--r-- | components/script/dom/servohtmlparser.rs | 1 | ||||
-rw-r--r-- | components/script/dom/webglrenderingcontext.rs | 8 | ||||
-rw-r--r-- | components/script/page.rs | 1 |
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; } |