aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/bindings/utils.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/script/dom/bindings/utils.rs')
-rw-r--r--src/components/script/dom/bindings/utils.rs55
1 files changed, 27 insertions, 28 deletions
diff --git a/src/components/script/dom/bindings/utils.rs b/src/components/script/dom/bindings/utils.rs
index bb405b3a473..fad4d4c83fd 100644
--- a/src/components/script/dom/bindings/utils.rs
+++ b/src/components/script/dom/bindings/utils.rs
@@ -527,42 +527,42 @@ pub fn initialize_global(global: *JSObject) {
}
}
-pub trait CacheableWrapper {
- fn get_wrappercache(&mut self) -> &mut WrapperCache;
+pub trait Reflectable {
+ fn reflector(&mut self) -> &mut Reflector;
fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject;
}
-pub struct WrapperCache {
- wrapper: *JSObject
+pub struct Reflector {
+ object: *JSObject
}
-impl WrapperCache {
- pub fn get_wrapper(&self) -> *JSObject {
- unsafe { cast::transmute(self.wrapper) }
+impl Reflector {
+ pub fn get_jsobject(&self) -> *JSObject {
+ unsafe { cast::transmute(self.object) }
}
- pub fn set_wrapper(&mut self, wrapper: *JSObject) {
- self.wrapper = wrapper;
+ pub fn set_jsobject(&mut self, object: *JSObject) {
+ self.object = object;
}
pub fn get_rootable(&self) -> **JSObject {
- return to_unsafe_ptr(&self.wrapper);
+ return to_unsafe_ptr(&self.object);
}
- pub fn new() -> WrapperCache {
- WrapperCache {
- wrapper: ptr::null()
+ pub fn new() -> Reflector {
+ Reflector {
+ object: ptr::null()
}
}
}
#[fixed_stack_segment]
pub fn WrapNewBindingObject(cx: *JSContext, scope: *JSObject,
- value: @mut CacheableWrapper,
+ value: @mut Reflectable,
vp: *mut JSVal) -> JSBool {
unsafe {
- let cache = value.get_wrappercache();
- let obj = cache.get_wrapper();
+ let reflector = value.reflector();
+ let obj = reflector.get_jsobject();
if obj.is_not_null() /*&& js::GetObjectCompartment(obj) == js::GetObjectCompartment(scope)*/ {
*vp = RUST_OBJECT_TO_JSVAL(obj);
return 1; // JS_TRUE
@@ -574,31 +574,30 @@ pub fn WrapNewBindingObject(cx: *JSContext, scope: *JSObject,
}
// MOZ_ASSERT(js::IsObjectInContextCompartment(scope, cx));
- cache.set_wrapper(obj);
+ reflector.set_jsobject(obj);
*vp = RUST_OBJECT_TO_JSVAL(obj);
return JS_WrapValue(cx, cast::transmute(vp));
}
}
#[fixed_stack_segment]
-pub fn WrapNativeParent(cx: *JSContext, scope: *JSObject, mut p: Option<@mut CacheableWrapper>) -> *JSObject {
+pub fn WrapNativeParent(cx: *JSContext, scope: *JSObject, mut p: Option<@mut Reflectable>) -> *JSObject {
match p {
Some(ref mut p) => {
- let cache = p.get_wrappercache();
- let wrapper = cache.get_wrapper();
- if wrapper.is_not_null() {
- return wrapper;
+ let obj = p.reflector().get_jsobject();
+ if obj.is_not_null() {
+ return obj;
}
- let wrapper = p.wrap_object_shared(cx, scope);
- cache.set_wrapper(wrapper);
- wrapper
+ let obj = p.wrap_object_shared(cx, scope);
+ p.reflector().set_jsobject(obj);
+ obj
}
None => unsafe { JS_GetGlobalObject(cx) }
}
}
pub trait BindingObject {
- fn GetParentObject(&self, cx: *JSContext) -> Option<@mut CacheableWrapper>;
+ fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable>;
}
#[fixed_stack_segment]
@@ -734,8 +733,8 @@ pub trait DerivedWrapper {
impl DerivedWrapper for AbstractNode<ScriptView> {
#[fixed_stack_segment]
fn wrap(&mut self, cx: *JSContext, _scope: *JSObject, vp: *mut JSVal) -> i32 {
- let cache = self.get_wrappercache();
- let wrapper = cache.get_wrapper();
+ let cache = self.reflector();
+ let wrapper = cache.get_jsobject();
if wrapper.is_not_null() {
unsafe { *vp = RUST_OBJECT_TO_JSVAL(wrapper) };
return 1;