@@ -1556,10 +1556,7 @@ pub trait TDisplayObject<'gc>:
15561556 }
15571557 }
15581558
1559- fn name ( & self ) -> AvmString < ' gc > {
1560- self . base ( ) . name ( ) . unwrap_or_default ( )
1561- }
1562- fn name_optional ( & self ) -> Option < AvmString < ' gc > > {
1559+ fn name ( & self ) -> Option < AvmString < ' gc > > {
15631560 self . base ( ) . name ( )
15641561 }
15651562 fn set_name ( & self , gc_context : & Mutation < ' gc > , name : AvmString < ' gc > ) {
@@ -1581,7 +1578,9 @@ pub trait TDisplayObject<'gc>:
15811578 if let Some ( parent) = self . avm1_parent ( ) {
15821579 let mut path = parent. path ( ) ;
15831580 path. push_byte ( b'.' ) ;
1584- path. push_str ( & self . name ( ) ) ;
1581+ if let Some ( name) = self . name ( ) {
1582+ path. push_str ( & name) ;
1583+ }
15851584 path
15861585 } else {
15871586 WString :: from_utf8_owned ( format ! ( "_level{}" , self . depth( ) ) )
@@ -1595,7 +1594,9 @@ pub trait TDisplayObject<'gc>:
15951594 if let Some ( parent) = object. avm1_parent ( ) {
15961595 let mut path = build_slash_path ( parent) ;
15971596 path. push_byte ( b'/' ) ;
1598- path. push_str ( & object. name ( ) ) ;
1597+ if let Some ( name) = object. name ( ) {
1598+ path. push_str ( & name) ;
1599+ }
15991600 path
16001601 } else {
16011602 let level = object. depth ( ) ;
@@ -2046,20 +2047,24 @@ pub trait TDisplayObject<'gc>:
20462047 if self . has_explicit_name ( ) {
20472048 if let Some ( parent @ Avm2Value :: Object ( _) ) = self . parent ( ) . map ( |p| p. object2 ( ) ) {
20482049 if let Avm2Value :: Object ( child) = self . object2 ( ) {
2049- let domain = context
2050- . library
2051- . library_for_movie ( self . movie ( ) )
2052- . unwrap ( )
2053- . avm2_domain ( ) ;
2054- let mut activation = Avm2Activation :: from_domain ( context, domain) ;
2055- let name =
2056- Avm2Multiname :: new ( activation. avm2 ( ) . find_public_namespace ( ) , self . name ( ) ) ;
2057- if let Err ( e) = parent. init_property ( & name, child. into ( ) , & mut activation) {
2058- tracing:: error!(
2059- "Got error when setting AVM2 child named \" {}\" : {}" ,
2060- & self . name( ) ,
2061- e
2062- ) ;
2050+ if let Some ( name) = self . name ( ) {
2051+ let domain = context
2052+ . library
2053+ . library_for_movie ( self . movie ( ) )
2054+ . unwrap ( )
2055+ . avm2_domain ( ) ;
2056+ let mut activation = Avm2Activation :: from_domain ( context, domain) ;
2057+ let multiname =
2058+ Avm2Multiname :: new ( activation. avm2 ( ) . find_public_namespace ( ) , name) ;
2059+ if let Err ( e) =
2060+ parent. init_property ( & multiname, child. into ( ) , & mut activation)
2061+ {
2062+ tracing:: error!(
2063+ "Got error when setting AVM2 child named \" {}\" : {}" ,
2064+ & name,
2065+ e
2066+ ) ;
2067+ }
20632068 }
20642069 }
20652070 }
@@ -2138,7 +2143,7 @@ pub trait TDisplayObject<'gc>:
21382143 bounds. x_min. to_pixels( ) ,
21392144 bounds. y_min. to_pixels( ) ,
21402145 classname,
2141- self . name( ) ,
2146+ self . name( ) . map ( |s| s . to_string ( ) ) . unwrap_or_default ( ) ,
21422147 self_str,
21432148 self . id( ) ,
21442149 depth
@@ -2470,7 +2475,7 @@ pub trait TDisplayObject<'gc>:
24702475 let name = AvmString :: new_utf8 ( context. gc ( ) , format ! ( "root{}" , self . depth( ) + 1 ) ) ;
24712476 self . set_name ( context. gc ( ) , name) ;
24722477 } else {
2473- self . set_name ( context. gc ( ) , Default :: default ( ) ) ;
2478+ self . set_name ( context. gc ( ) , context . strings . empty ( ) ) ;
24742479 }
24752480 }
24762481
0 commit comments