/// Removes a child from the execution list.
///
/// This returns `true` if the child was successfully removed, and `false`
/// if no list alterations were made.
///
/// This does not affect the render or depth lists, nor does it unload the
/// child. You must unload the child yourself in a clean stack frame, as
/// display objects are permitted to run code when unloading. We also don't
/// unset the parent either as that's expected to happen after unloading.
Removes a child from the execution list.
This returns `true` if the child was successfully removed, and `false`
if no list alterations were made.

This does not affect the render or depth lists, nor does it unload the
child. You must unload the child yourself in a clean stack frame, as
display objects are permitted to run code when unloading. We also don't
unset the parent either as that's expected to happen after unloading.
Removes a child from the execution list . This returns ` true ` if the child was successfully removed and ` false ` if no list alterations were made . This does not affect the render or depth lists nor does it unload the child . You must unload the child yourself in a clean stack frame as display objects are permitted to run code when unloading . We also don ' t unset the parent either as that ' s expected to happen after unloading .
pub fn remove_child_from_exec_list(
        &mut self,
        context: &mut UpdateContext<'_, 'gc, '_>,
        child: DisplayObject<'gc>,
    ) -> bool {
        // Remove from children linked list.
        let prev = child.prev_sibling();
        let next = child.next_sibling();
        let present_on_execution_list = prev.is_some()
            || next.is_some()
            || (self.exec_list.is_some() && DisplayObject::ptr_eq(self.exec_list.unwrap(), child));
        if let Some(prev) = prev {
            prev.set_next_sibling(context.gc_context, next);
        }
        if let Some(next) = next {
            next.set_prev_sibling(context.gc_context, prev);
        }
        child.set_prev_sibling(context.gc_context, None);
        child.set_next_sibling(context.gc_context, None);
        if let Some(head) = self.exec_list {
            if DisplayObject::ptr_eq(head, child) {
                self.exec_list = next;
            }
        }
        present_on_execution_list
    }
pub fn remove_child_from_exec_list ( & mut self , context : & mut UpdateContext < ' _ , ' gc , ' _ > , child : DisplayObject < ' gc > , ) -> bool { // Remove from children linked list. let prev = child . prev_sibling ( ) ; let next = child . next_sibling ( ) ; let present_on_execution_list = prev . is_some ( ) || next . is_some ( ) || ( self . exec_list . is_some ( ) && DisplayObject :: ptr_eq ( self . exec_list . unwrap ( ) , child ) ) ; if let Some ( prev ) = prev { prev . set_next_sibling ( context . gc_context , next ) ; } if let Some ( next ) = next { next . set_prev_sibling ( context . gc_context , prev ) ; } child . set_prev_sibling ( context . gc_context , None ) ; child . set_next_sibling ( context . gc_context , None ) ; if let Some ( head ) = self . exec_list { if DisplayObject :: ptr_eq ( head , child ) { self . exec_list = next ; } } present_on_execution_list }
Removes a child from the execution list.
Removes a child from the execution list .
&mut self
context
&mut UpdateContext<'_, 'gc, '_>
child
DisplayObject<'gc>