diff options
author | Manish Goregaokar <manishsmail@gmail.com> | 2014-09-17 18:17:19 +0530 |
---|---|---|
committer | Manish Goregaokar <manishsmail@gmail.com> | 2014-09-17 18:17:19 +0530 |
commit | 11ba79894a13ddaee4bfcdd64d23fd4b54a041f3 (patch) | |
tree | 5eac047b9fdc394ff30ce52a6dd888f164c6b629 /components/script/dom/bindings/utils.rs | |
parent | aa935c7b027bf00bf1f6756b0f5e1f4d0866c964 (diff) | |
parent | f5087e149004e0080a61a2a31d76a5c52ee357e1 (diff) | |
download | servo-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.rs | 5 |
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(); |