public void free()                            
    {
        for (BaseListener dependentListener : m_BehaviorList)
        {
            if (dependentListener.getDependentListener() != null) // Don't delete the one that is deleting itself (and calling this method!)
            {
                dependentListener.setDependentListener(null);   // Tell listener not to delete me!
                dependentListener.free();   // Remove the listener that is dependent on "this"
            }            
        }
        super.free();
    }
public void free ( ) { for ( BaseListener dependentListener : m_BehaviorList ) { if ( dependentListener . getDependentListener ( ) != null ) { dependentListener . setDependentListener ( null ) ; dependentListener . free ( ) ; } } super . free ( ) ; }
Free this listener (and remove the dependencies).