mirror of
https://github.com/servo/servo.git
synced 2025-08-05 21:50:18 +01:00
Don't use RootedReference for Option<T> in codegen anymore
This commit is contained in:
parent
5fe5e5d6de
commit
1744a42dad
2 changed files with 4 additions and 16 deletions
|
@ -7250,9 +7250,11 @@ def camel_to_upper_snake(s):
|
|||
|
||||
def process_arg(expr, arg):
|
||||
if arg.type.isGeckoInterface() and not arg.type.unroll().inner.isCallback():
|
||||
if arg.variadic or arg.type.isSequence() or arg.type.nullable() and arg.optional:
|
||||
if arg.variadic or arg.type.isSequence():
|
||||
expr += ".r()"
|
||||
elif arg.type.nullable() or arg.optional:
|
||||
elif arg.type.nullable() and arg.optional and not arg.defaultValue:
|
||||
expr += ".as_ref().map(Option::deref)"
|
||||
elif arg.type.nullable() or arg.optional and not arg.defaultValue:
|
||||
expr += ".deref()"
|
||||
else:
|
||||
expr = "&" + expr
|
||||
|
|
|
@ -264,13 +264,6 @@ pub trait RootedReference<'root> {
|
|||
fn r(&'root self) -> Self::Ref;
|
||||
}
|
||||
|
||||
impl<'root, T: DomObject + 'root> RootedReference<'root> for DomRoot<T> {
|
||||
type Ref = &'root T;
|
||||
fn r(&'root self) -> &'root T {
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
impl<'root, T: JSTraceable + DomObject + 'root> RootedReference<'root> for [Dom<T>] {
|
||||
type Ref = &'root [&'root T];
|
||||
fn r(&'root self) -> &'root [&'root T] {
|
||||
|
@ -278,13 +271,6 @@ impl<'root, T: JSTraceable + DomObject + 'root> RootedReference<'root> for [Dom<
|
|||
}
|
||||
}
|
||||
|
||||
impl<'root, T: RootedReference<'root> + 'root> RootedReference<'root> for Option<T> {
|
||||
type Ref = Option<T::Ref>;
|
||||
fn r(&'root self) -> Option<T::Ref> {
|
||||
self.as_ref().map(RootedReference::r)
|
||||
}
|
||||
}
|
||||
|
||||
/// A traced reference to a DOM object
|
||||
///
|
||||
/// This type is critical to making garbage collection work with the DOM,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue