aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/bindings/codegen/CodegenRust.py
diff options
context:
space:
mode:
authorMs2ger <ms2ger@gmail.com>2013-11-03 14:47:26 +0100
committerMs2ger <ms2ger@gmail.com>2013-11-06 21:56:36 +0100
commitedd9c1d5ebb17c68bc1c5b809099aecc3f59943b (patch)
tree3ac8222096b23c3adf9dae8a1756f4ea549aa726 /src/components/script/dom/bindings/codegen/CodegenRust.py
parent5c101526a1432ca783028d70185f78ae0d2559a1 (diff)
downloadservo-edd9c1d5ebb17c68bc1c5b809099aecc3f59943b.tar.gz
servo-edd9c1d5ebb17c68bc1c5b809099aecc3f59943b.zip
Remove WrapNativeParent and nearby cleanup.
Diffstat (limited to 'src/components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r--src/components/script/dom/bindings/codegen/CodegenRust.py28
1 files changed, 12 insertions, 16 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py
index 1d1eb1e4fe0..2efe1af1359 100644
--- a/src/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/src/components/script/dom/bindings/codegen/CodegenRust.py
@@ -2506,8 +2506,8 @@ class CGAbstractMethod(CGThing):
def CreateBindingJSObject(descriptor, parent=None):
if descriptor.proxy:
- handler = """ //let reflector = aObject.mut_reflector();
-
+ assert not descriptor.createGlobal
+ handler = """
let page = page_from_context(aCx);
let handler = (*page).js_info.get_ref().dom_static.proxy_handlers.get(&(PrototypeList::id::%s as uint));
""" % descriptor.name
@@ -2546,33 +2546,29 @@ class CGWrapWithCacheMethod(CGAbstractMethod):
return """return aObject->GetJSObject();"""
if not self.descriptor.createGlobal:
- return """let mut parent = aObject.GetParentObject(aCx);
- let parent = WrapNativeParent(aCx, aScope, parent);
- if parent.is_null() {
- return ptr::null();
- }
+ return """
+ assert!(aScope.is_not_null());
+ assert!(((*JS_GetClass(aScope)).flags & JSCLASS_IS_GLOBAL) != 0);
- //JSAutoCompartment ac(aCx, parent);
- let global = JS_GetGlobalForObject(aCx, parent);
- let proto = GetProtoObject(aCx, global, global);
+ //JSAutoCompartment ac(aCx, aScope);
+ let proto = GetProtoObject(aCx, aScope, aScope);
if proto.is_null() {
return ptr::null();
}
-
- let reflector = aObject.mut_reflector();
%s
//NS_ADDREF(aObject);
- (*reflector).set_jsobject(obj);
+ aObject.mut_reflector().set_jsobject(obj);
- return obj;""" % (CreateBindingJSObject(self.descriptor, "parent"))
+ return obj;""" % (CreateBindingJSObject(self.descriptor, "aScope"))
else:
- return """ let reflector = aObject.mut_reflector();
+ return """
+ assert!(aScope.is_null());
%s
let proto = GetProtoObject(aCx, obj, obj);
JS_SetPrototype(aCx, obj, proto);
- (*reflector).set_jsobject(obj);
+ aObject.mut_reflector().set_jsobject(obj);
return obj;""" % CreateBindingJSObject(self.descriptor)
class CGWrapMethod(CGAbstractMethod):