void RemoveObserver(Observer<InfoType>* aObserver) { // If mObservers is null, that means there are no observers. // In addition, if RemoveObserver() returns false, that means we didn't // find the observer. // In both cases, that is a logical error we want to make sure the developer // notices. MOZ_ASSERT(mObservers); #ifndef DEBUG if (!mObservers) { return; } #endif DebugOnly<bool> removed = mObservers->RemoveObserver(aObserver); MOZ_ASSERT(removed); if (mObservers->Length() == 0) { DisableNotifications(); OnNotificationsDisabled(); delete mObservers; mObservers = 0; } }
void RemoveObserver(Observer<InfoType>* aObserver) { bool removed = mObservers && mObservers->RemoveObserver(aObserver); if (!removed) { return; } if (mObservers->Length() == 0) { DisableNotifications(); OnNotificationsDisabled(); delete mObservers; mObservers = nullptr; } }
void RemoveObserver(Observer<InfoType>* aObserver) { bool removed = mObservers && mObservers->RemoveObserver(aObserver); if (!removed) { NS_WARNING("RemoveObserver() called for unregistered observer"); return; } if (mObservers->Length() == 0) { DisableNotifications(); OnNotificationsDisabled(); delete mObservers; mObservers = nullptr; } }