bool IdTargetObserverRegistry::hasObservers(const AtomicString& id) const { if (id.isEmpty() || m_registry.isEmpty()) return false; ObserverSet* set = m_registry.get(id.impl()); return set && !set->isEmpty(); }
void IdTargetObserverRegistry::removeObserver(const AtomicString& id, IdTargetObserver* observer) { if (id.isEmpty() || m_registry.isEmpty()) return; IdToObserverSetMap::iterator iter = m_registry.find(id.impl()); ObserverSet* set = iter->value.get(); set->remove(observer); if (set->isEmpty() && set != m_notifyingObserversInSet) m_registry.remove(iter); }