ScriptExecutionContext::~ScriptExecutionContext() { m_inDestructor = true; for (HashSet<ContextDestructionObserver*>::iterator iter = m_destructionObservers.begin(); iter != m_destructionObservers.end(); iter = m_destructionObservers.begin()) { ContextDestructionObserver* observer = *iter; m_destructionObservers.remove(observer); ASSERT(observer->scriptExecutionContext() == this); observer->contextDestroyed(); } HashSet<MessagePort*>::iterator messagePortsEnd = m_messagePorts.end(); for (HashSet<MessagePort*>::iterator iter = m_messagePorts.begin(); iter != messagePortsEnd; ++iter) { ASSERT((*iter)->scriptExecutionContext() == this); (*iter)->contextDestroyed(); } #if ENABLE(SQL_DATABASE) if (m_databaseThread) { ASSERT(m_databaseThread->terminationRequested()); m_databaseThread = 0; } #endif #if ENABLE(BLOB) || ENABLE(FILE_SYSTEM) if (m_fileThread) { m_fileThread->stop(); m_fileThread = 0; } #endif }
ScriptExecutionContext::~ScriptExecutionContext() { m_inDestructor = true; for (HashSet<ContextDestructionObserver*>::iterator iter = m_destructionObservers.begin(); iter != m_destructionObservers.end(); iter = m_destructionObservers.begin()) { ContextDestructionObserver* observer = *iter; m_destructionObservers.remove(observer); ASSERT(observer->scriptExecutionContext() == this); observer->contextDestroyed(); } HashSet<MessagePort*>::iterator messagePortsEnd = m_messagePorts.end(); for (HashSet<MessagePort*>::iterator iter = m_messagePorts.begin(); iter != messagePortsEnd; ++iter) { ASSERT((*iter)->scriptExecutionContext() == this); (*iter)->contextDestroyed(); } }
ScriptExecutionContext::~ScriptExecutionContext() { m_inDestructor = true; for (HashSet<ContextDestructionObserver*>::iterator iter = m_destructionObservers.begin(); iter != m_destructionObservers.end(); iter = m_destructionObservers.begin()) { ContextDestructionObserver* observer = *iter; m_destructionObservers.remove(observer); ASSERT(observer->scriptExecutionContext() == this); observer->contextDestroyed(); } HashSet<MessagePort*>::iterator messagePortsEnd = m_messagePorts.end(); for (HashSet<MessagePort*>::iterator iter = m_messagePorts.begin(); iter != messagePortsEnd; ++iter) { ASSERT((*iter)->scriptExecutionContext() == this); (*iter)->contextDestroyed(); } #if ENABLE(BLOB) if (m_fileThread) { m_fileThread->stop(); m_fileThread = 0; } if (m_publicURLManager) m_publicURLManager->contextDestroyed(); #endif }