mirror of
https://github.com/servo/servo.git
synced 2025-08-02 20:20:14 +01:00
Keep DOM proxy handlers as separate named items rather than in one array
This commit is contained in:
parent
36920abfe8
commit
3367db6067
1 changed files with 12 additions and 10 deletions
|
@ -2750,7 +2750,7 @@ class CGWrapMethod(CGAbstractMethod):
|
||||||
unforgeable = CopyUnforgeablePropertiesToInstance(self.descriptor)
|
unforgeable = CopyUnforgeablePropertiesToInstance(self.descriptor)
|
||||||
if self.descriptor.proxy:
|
if self.descriptor.proxy:
|
||||||
create = """
|
create = """
|
||||||
let handler = RegisterBindings::PROXY_HANDLERS[PrototypeList::Proxies::%(concreteType)s as usize];
|
let handler = RegisterBindings::proxy_handlers::%(concreteType)s;
|
||||||
rooted!(in(*cx) let obj = NewProxyObject(
|
rooted!(in(*cx) let obj = NewProxyObject(
|
||||||
*cx,
|
*cx,
|
||||||
handler,
|
handler,
|
||||||
|
@ -6744,7 +6744,7 @@ class CGRegisterProxyHandlersMethod(CGAbstractMethod):
|
||||||
|
|
||||||
def definition_body(self):
|
def definition_body(self):
|
||||||
return CGList([
|
return CGList([
|
||||||
CGGeneric("PROXY_HANDLERS[Proxies::%s as usize] = Bindings::%s::DefineProxyHandler();"
|
CGGeneric("proxy_handlers::%s = Bindings::%s::DefineProxyHandler();"
|
||||||
% (desc.name, '::'.join([desc.name + 'Binding'] * 2)))
|
% (desc.name, '::'.join([desc.name + 'Binding'] * 2)))
|
||||||
for desc in self.descriptors
|
for desc in self.descriptors
|
||||||
], "\n")
|
], "\n")
|
||||||
|
@ -6753,10 +6753,17 @@ class CGRegisterProxyHandlersMethod(CGAbstractMethod):
|
||||||
class CGRegisterProxyHandlers(CGThing):
|
class CGRegisterProxyHandlers(CGThing):
|
||||||
def __init__(self, config):
|
def __init__(self, config):
|
||||||
descriptors = config.getDescriptors(proxy=True)
|
descriptors = config.getDescriptors(proxy=True)
|
||||||
length = len(descriptors)
|
|
||||||
self.root = CGList([
|
self.root = CGList([
|
||||||
CGGeneric("pub static mut PROXY_HANDLERS: [*const libc::c_void; %d] = [0 as *const libc::c_void; %d];"
|
CGGeneric(
|
||||||
% (length, length)),
|
"#[allow(non_upper_case_globals)]\n" +
|
||||||
|
"pub mod proxy_handlers {\n" +
|
||||||
|
"".join(
|
||||||
|
" pub static mut %s: *const libc::c_void = std::ptr::null();\n"
|
||||||
|
% desc.name
|
||||||
|
for desc in descriptors
|
||||||
|
) +
|
||||||
|
"}\n"
|
||||||
|
),
|
||||||
CGRegisterProxyHandlersMethod(descriptors),
|
CGRegisterProxyHandlersMethod(descriptors),
|
||||||
], "\n")
|
], "\n")
|
||||||
|
|
||||||
|
@ -7606,8 +7613,6 @@ class GlobalGenRoots():
|
||||||
for d in config.getDescriptors(hasInterfaceObject=True)
|
for d in config.getDescriptors(hasInterfaceObject=True)
|
||||||
if d.shouldHaveGetConstructorObjectMethod()])
|
if d.shouldHaveGetConstructorObjectMethod()])
|
||||||
|
|
||||||
proxies = [d.name for d in config.getDescriptors(proxy=True)]
|
|
||||||
|
|
||||||
return CGList([
|
return CGList([
|
||||||
CGGeneric(AUTOGENERATED_WARNING_COMMENT),
|
CGGeneric(AUTOGENERATED_WARNING_COMMENT),
|
||||||
CGGeneric("pub const PROTO_OR_IFACE_LENGTH: usize = %d;\n" % (len(protos) + len(constructors))),
|
CGGeneric("pub const PROTO_OR_IFACE_LENGTH: usize = %d;\n" % (len(protos) + len(constructors))),
|
||||||
|
@ -7624,7 +7629,6 @@ class GlobalGenRoots():
|
||||||
" debug_assert!(proto_id < ID::Last as u16);\n"
|
" debug_assert!(proto_id < ID::Last as u16);\n"
|
||||||
" INTERFACES[proto_id as usize]\n"
|
" INTERFACES[proto_id as usize]\n"
|
||||||
"}\n\n"),
|
"}\n\n"),
|
||||||
CGNonNamespacedEnum('Proxies', proxies, 0, deriving="PartialEq, Copy, Clone"),
|
|
||||||
])
|
])
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -7636,8 +7640,6 @@ class GlobalGenRoots():
|
||||||
|
|
||||||
return CGImports(code, descriptors=[], callbacks=[], dictionaries=[], enums=[], typedefs=[], imports=[
|
return CGImports(code, descriptors=[], callbacks=[], dictionaries=[], enums=[], typedefs=[], imports=[
|
||||||
'crate::dom::bindings::codegen::Bindings',
|
'crate::dom::bindings::codegen::Bindings',
|
||||||
'crate::dom::bindings::codegen::PrototypeList::Proxies',
|
|
||||||
'libc',
|
|
||||||
], config=config, ignored_warnings=[])
|
], config=config, ignored_warnings=[])
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue