diff options
author | Josh Matthews <josh@joshmatthews.net> | 2023-05-26 01:21:31 -0400 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2023-05-26 01:21:31 -0400 |
commit | 7d9dc458afca1b1931c33fd18c7ba5937dc8732e (patch) | |
tree | 87e5820984b1b453f125ab57366adcc0b0d0eb42 /components/script/dom/bindings/codegen/CodegenRust.py | |
parent | 747a99d3f6ddc1f3e3cf539cf873120efd69ef46 (diff) | |
download | servo-7d9dc458afca1b1931c33fd18c7ba5937dc8732e.tar.gz servo-7d9dc458afca1b1931c33fd18c7ba5937dc8732e.zip |
Use an enum to pass the index value for interfaces/protos.
Diffstat (limited to 'components/script/dom/bindings/codegen/CodegenRust.py')
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 828a0e380c0..24cf71d8820 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -3490,11 +3490,12 @@ class CGGetPerInterfaceObject(CGAbstractMethod): CGAbstractMethod.__init__(self, descriptor, name, 'void', args, pub=pub) self.id = idPrefix + "::" + MakeNativeName(self.descriptor.name) + self.variant = self.id.split('::')[-2] def definition_body(self): return CGGeneric(""" - get_per_interface_object_handle(cx, global, %s as usize, CreateInterfaceObjects, rval) - """ % self.id) + get_per_interface_object_handle(cx, global, ProtoOrIfaceIndex::%s(%s), CreateInterfaceObjects, rval) + """ % (self.variant, self.id)) class CGGetProtoObjectMethod(CGGetPerInterfaceObject): @@ -3647,14 +3648,15 @@ class CGDefineDOMInterfaceMethod(CGAbstractMethod): else: idPrefix = "PrototypeList::ID" self.id = idPrefix + "::" + MakeNativeName(self.descriptor.name) + self.variant = self.id.split('::')[-2] def define(self): return CGAbstractMethod.define(self) def definition_body(self): return CGGeneric(""" - define_dom_interface(cx, global, %s as usize, CreateInterfaceObjects, ConstructorEnabled) - """ % self.id) + define_dom_interface(cx, global, ProtoOrIfaceIndex::%s(%s), CreateInterfaceObjects, ConstructorEnabled) + """ % (self.variant, self.id)) def needCx(returnType, arguments, considerTypes): @@ -6425,17 +6427,18 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries 'crate::dom::bindings::interface::ConstructorClassHook', 'crate::dom::bindings::interface::InterfaceConstructorBehavior', 'crate::dom::bindings::interface::NonCallbackInterfaceObjectClass', + 'crate::dom::bindings::interface::ProtoOrIfaceIndex', 'crate::dom::bindings::interface::create_global_object', 'crate::dom::bindings::interface::create_callback_interface_object', 'crate::dom::bindings::interface::create_interface_prototype_object', 'crate::dom::bindings::interface::create_named_constructors', 'crate::dom::bindings::interface::create_noncallback_interface_object', + 'crate::dom::bindings::interface::define_dom_interface', 'crate::dom::bindings::interface::define_guarded_constants', 'crate::dom::bindings::interface::define_guarded_methods', 'crate::dom::bindings::interface::define_guarded_properties', 'crate::dom::bindings::interface::is_exposed_in', 'crate::dom::bindings::interface::get_per_interface_object_handle', - 'crate::dom::bindings::interface::define_dom_interface', 'crate::dom::bindings::htmlconstructor::pop_current_element_queue', 'crate::dom::bindings::htmlconstructor::push_new_element_queue', 'crate::dom::bindings::iterable::Iterable', |