aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/utils.rs
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2014-09-17 18:17:19 +0530
committerManish Goregaokar <manishsmail@gmail.com>2014-09-17 18:17:19 +0530
commit11ba79894a13ddaee4bfcdd64d23fd4b54a041f3 (patch)
tree5eac047b9fdc394ff30ce52a6dd888f164c6b629 /components/script/dom/bindings/utils.rs
parentaa935c7b027bf00bf1f6756b0f5e1f4d0866c964 (diff)
parentf5087e149004e0080a61a2a31d76a5c52ee357e1 (diff)
downloadservo-11ba79894a13ddaee4bfcdd64d23fd4b54a041f3.tar.gz
servo-11ba79894a13ddaee4bfcdd64d23fd4b54a041f3.zip
Merge pull request #3374 from Manishearth/lint_unrooted_jsmanaged
Add lint for ensuring proper rooting of JS<T>; r=jdm
Diffstat (limited to 'components/script/dom/bindings/utils.rs')
-rw-r--r--components/script/dom/bindings/utils.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs
index 08b65dd084d..0f6ab2098fe 100644
--- a/components/script/dom/bindings/utils.rs
+++ b/components/script/dom/bindings/utils.rs
@@ -455,8 +455,9 @@ pub fn reflect_dom_object<T: Reflectable>
}
/// A struct to store a reference to the reflector of a DOM object.
-#[allow(raw_pointer_deriving)]
+#[allow(raw_pointer_deriving, unrooted_must_root)]
#[deriving(PartialEq)]
+#[must_root]
pub struct Reflector {
object: Cell<*mut JSObject>,
}
@@ -668,6 +669,7 @@ pub extern fn outerize_global(_cx: *mut JSContext, obj: JSHandleObject) -> *mut
}
/// Returns the global object of the realm that the given JS object was created in.
+#[allow(unrooted_must_root)]
pub fn global_object_for_js_object(obj: *mut JSObject) -> GlobalField {
unsafe {
let global = GetGlobalForObjectCrossCompartment(obj);
@@ -689,6 +691,7 @@ pub fn global_object_for_js_object(obj: *mut JSObject) -> GlobalField {
/// Get the `JSContext` for the `JSRuntime` associated with the thread
/// this object is on.
+#[allow(unrooted_must_root)]
fn cx_for_dom_reflector(obj: *mut JSObject) -> *mut JSContext {
let global = global_object_for_js_object(obj);
let global = global.root();