diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index f9a82da32e9..b9bd9a54ae8 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -2675,38 +2675,6 @@ class CGCreateInterfaceObjectsMethod(CGAbstractMethod): # if we don't need to create anything, why are we generating this? assert needInterfaceObject or needInterfacePrototypeObject - idsToInit = [] - if False: #XXXjdm don't need xray stuff yet - for var in self.properties.xrayRelevantArrayNames(): - props = getattr(self.properties, var) - # We only have non-chrome ids to init if we have no chrome ids. - if props.hasChromeOnly(): - idsToInit.append(props.variableName(True)) - elif props.hasNonChromeOnly(): - idsToInit.append(props.variableName(False)) - if len(idsToInit) > 0: - setup = CGList([CGGeneric("let page = page_from_context(aCx);"), - CGList([CGGeneric("let mut js_info = (*page).js_info();\n" - "let %s_ids_mut = js_info.get().get_ref().dom_static.attribute_ids.get(&(PrototypeList::id::%s as uint));" % (varname, self.descriptor.name)) for varname in idsToInit], '\n')], '\n') - initIds = CGList( - [CGGeneric("!InitIds(aCx, %s, *%s_ids_mut)" % (varname, varname)) for - varname in idsToInit], ' ||\n') - if len(idsToInit) > 1: - initIds = CGWrapper(initIds, pre="(", post=")", reindent=True) - initIds = CGList( - [CGGeneric("%s_ids_mut[0] == JSID_VOID &&" % idsToInit[0]), initIds], - "\n") - initIds = CGWrapper(initIds, pre="if ", post=" {", reindent=True) - initIds = CGList( - [setup, - initIds, - CGGeneric((" %s_ids_mut[0] = JSID_VOID;\n" - " return ptr::null();") % idsToInit[0]), - CGGeneric("}")], - "\n") - else: - initIds = None - prefCacheData = [] for var in self.properties.arrayNames(): props = getattr(self.properties, var) @@ -2773,7 +2741,7 @@ class CGCreateInterfaceObjectsMethod(CGAbstractMethod): chrome = None functionBody = CGList( - [CGGeneric(getParentProto), initIds, prefCache, chrome, + [CGGeneric(getParentProto), prefCache, chrome, CGGeneric(call % self.properties.variableNames(False))], "\n\n") #return CGIndenter(CGWrapper(functionBody, pre="/*", post="*/return ptr::null()")).define() @@ -5294,7 +5262,7 @@ class CGBindingRoot(CGThing): 'dom::bindings::codegen::*', #XXXjdm 'dom::bindings::codegen::UnionTypes::*', #XXXjdm 'dom::bindings::codegen::UnionConversions::*', #XXXjdm - 'script_task::{JSPageInfo, page_from_context}', + 'script_task::JSPageInfo', 'dom::bindings::proxyhandler', 'dom::bindings::proxyhandler::*', 'servo_util::str::DOMString', diff --git a/src/components/script/script_task.rs b/src/components/script/script_task.rs index 5bc064c77cf..d4215b46c28 100644 --- a/src/components/script/script_task.rs +++ b/src/components/script/script_task.rs @@ -35,8 +35,7 @@ use geom::size::Size2D; use js::JSVAL_NULL; use js::global::DEBUG_FNS; use js::glue::RUST_JSVAL_TO_OBJECT; -use js::jsapi::{JSContext, JSObject, JS_InhibitGC, JS_AllowGC}; -use js::jsapi::{JS_CallFunctionValue, JS_GetContextPrivate}; +use js::jsapi::{JSObject, JS_InhibitGC, JS_AllowGC, JS_CallFunctionValue}; use js::rust::{Compartment, Cx, CxUtils, RtUtils}; use js; use servo_msg::compositor_msg::{FinishedLoading, Loading, PerformingLayout, ScriptListener}; @@ -420,15 +419,7 @@ impl Page { Err(()) => fail!("Failed to create a compartment"), }; - // Indirection for Rust Issue #6248, dynamic freeze scope artifically extended - let page_ptr = { - let borrowed_page = &*self; - borrowed_page as *Page - }; - unsafe { - js_context.borrow().set_cx_private(page_ptr as *()); - JS_InhibitGC(js_context.borrow().ptr); } @@ -489,13 +480,6 @@ pub struct ScriptTask { mouse_over_targets: RefCell]>> } -/// Returns the relevant page from the associated JS Context. -pub fn page_from_context(js_context: *JSContext) -> *Page { - unsafe { - JS_GetContextPrivate(js_context) as *Page - } -} - impl ScriptTask { /// Creates a new script task. pub fn new(id: PipelineId,