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; } }
SSDP::~SSDP() { LOG(VB_UPNP, LOG_NOTICE, "Shutting Down SSDP Thread..." ); DisableNotifications(); m_bTermRequested = true; wait(); if (m_pNotifyTask != NULL) { m_pNotifyTask->DecrRef(); m_pNotifyTask = NULL; } for (int nIdx = 0; nIdx < (int)NumberOfSockets; nIdx++ ) { if (m_Sockets[ nIdx ] != NULL ) { delete m_Sockets[ nIdx ]; } } LOG(VB_UPNP, LOG_INFO, "SSDP Thread Terminated." ); }
SSDP::~SSDP() { VERBOSE(VB_UPNP, "SSDP::Destructor - Shutting Down SSDP Thread..." ); DisableNotifications(); m_bTermRequested = true; wait(); if (m_pNotifyTask != NULL) m_pNotifyTask->Release(); for (int nIdx = 0; nIdx < (int)NumberOfSockets; nIdx++ ) { if (m_Sockets[ nIdx ] != NULL ) { delete m_Sockets[ nIdx ]; } } g_pSSDP = NULL; VERBOSE(VB_UPNP, "SSDP::Destructor - SSDP Thread Terminated." ); }
void RemoveObserver(Observer<InfoType>* aObserver) { MOZ_ASSERT(mObservers); mObservers->RemoveObserver(aObserver); if (mObservers->Length() == 0) { DisableNotifications(); delete mObservers; mObservers = 0; mHasValidCache = false; } }
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; } }
SSDP::~SSDP() { DisableNotifications(); m_bTermRequested = true; wait(); if (m_pNotifyTask != NULL) m_pNotifyTask->Release(); for (int nIdx = 0; nIdx < (int)NumberOfSockets; nIdx++ ) { if (m_Sockets[ nIdx ] != NULL ) { delete m_Sockets[ nIdx ]; } } }