Ejemplo n.º 1
0
void MediaQueryList::removeListener(PassRefPtrWillBeRawPtr<MediaQueryListListener> listener)
{
    if (!listener)
        return;

    RefPtrWillBeRawPtr<MediaQueryList> protect(this);
    listener->clearMediaQueryList();

    for (ListenerList::iterator it = m_listeners.begin(), end = m_listeners.end(); it != end; ++it) {
        // We can't just use m_listeners.remove() here, because we get a new wrapper for the
        // listener callback every time. We have to use MediaQueryListListener::operator==.
        if (**it == *listener.get()) {
            m_listeners.remove(it);
            break;
        }
    }
}