aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/bindings/utils.rs
diff options
context:
space:
mode:
authorMs2ger <ms2ger@gmail.com>2014-03-20 23:26:22 +0100
committerMs2ger <ms2ger@gmail.com>2014-03-20 23:26:22 +0100
commit6ee2e29e62cd97d109382713e4e7362950eb7c93 (patch)
treef30989e632b23acb757ecc37cd16cfe2c176f60a /src/components/script/dom/bindings/utils.rs
parenta4fc6961a8d29b85c30a0a55394ec9db8d3443ab (diff)
downloadservo-6ee2e29e62cd97d109382713e4e7362950eb7c93.tar.gz
servo-6ee2e29e62cd97d109382713e4e7362950eb7c93.zip
Make unwrap and unwrap_object less generic.
Diffstat (limited to 'src/components/script/dom/bindings/utils.rs')
-rw-r--r--src/components/script/dom/bindings/utils.rs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/components/script/dom/bindings/utils.rs b/src/components/script/dom/bindings/utils.rs
index cac4185d088..7b158c9c738 100644
--- a/src/components/script/dom/bindings/utils.rs
+++ b/src/components/script/dom/bindings/utils.rs
@@ -81,10 +81,10 @@ pub unsafe fn dom_object_slot(obj: *JSObject) -> u32 {
}
}
-pub unsafe fn unwrap<T>(obj: *JSObject) -> T {
+pub unsafe fn unwrap<T>(obj: *JSObject) -> *mut T {
let slot = dom_object_slot(obj);
let val = JS_GetReservedSlot(obj, slot);
- cast::transmute(val.to_private())
+ val.to_private() as *mut T
}
pub unsafe fn get_dom_class(obj: *JSObject) -> Result<DOMClass, ()> {
@@ -103,7 +103,7 @@ pub unsafe fn get_dom_class(obj: *JSObject) -> Result<DOMClass, ()> {
return Err(());
}
-pub fn unwrap_object<T>(obj: *JSObject, proto_id: PrototypeList::id::ID, proto_depth: uint) -> Result<T, ()> {
+pub fn unwrap_object<T>(obj: *JSObject, proto_id: PrototypeList::id::ID, proto_depth: uint) -> Result<*mut T, ()> {
unsafe {
get_dom_class(obj).and_then(|dom_class| {
if dom_class.interface_chain[proto_depth] == proto_id {
@@ -637,7 +637,7 @@ pub fn global_object_for_js_object(obj: *JSObject) -> JS<window::Window> {
let clasp = JS_GetClass(global);
assert!(((*clasp).flags & (JSCLASS_IS_DOMJSCLASS | JSCLASS_IS_GLOBAL)) != 0);
// FIXME(jdm): Either don't hardcode or sanity assert prototype stuff.
- match unwrap_object::<*mut window::Window>(global, PrototypeList::id::Window, 1) {
+ match unwrap_object(global, PrototypeList::id::Window, 1) {
Ok(win) => JS::from_raw(win),
Err(_) => fail!("found DOM global that doesn't unwrap to Window"),
}