summaryrefslogtreecommitdiffstats
path: root/webkit/port/bindings/v8/v8_proxy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/port/bindings/v8/v8_proxy.cpp')
-rw-r--r--webkit/port/bindings/v8/v8_proxy.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/webkit/port/bindings/v8/v8_proxy.cpp b/webkit/port/bindings/v8/v8_proxy.cpp
index 723d32b..945b1c3 100644
--- a/webkit/port/bindings/v8/v8_proxy.cpp
+++ b/webkit/port/bindings/v8/v8_proxy.cpp
@@ -924,12 +924,16 @@ static void RemoveEventListenerFromList(V8EventListenerList& list,
void V8Proxy::RemoveV8EventListener(V8EventListener* listener)
{
+ ASSERT(!m_context.IsEmpty());
+ v8::Context::Scope contextScope(m_context);
RemoveEventListenerFromList(m_event_listeners, listener);
}
void V8Proxy::RemoveObjectEventListener(V8ObjectEventListener* listener)
{
+ ASSERT(!m_context.IsEmpty());
+ v8::Context::Scope contextScope(m_context);
RemoveEventListenerFromList(m_xhr_listeners, listener);
}
@@ -947,8 +951,13 @@ static void DisconnectEventListenersInList(V8EventListenerList& list)
void V8Proxy::DisconnectEventListeners()
{
- DisconnectEventListenersInList(m_event_listeners);
- DisconnectEventListenersInList(m_xhr_listeners);
+ if (m_event_listeners.begin() != m_event_listeners.end() ||
+ m_xhr_listeners.begin() != m_xhr_listeners.end()) {
+ ASSERT(!m_context.IsEmpty());
+ v8::Context::Scope contextScope(m_context);
+ DisconnectEventListenersInList(m_event_listeners);
+ DisconnectEventListenersInList(m_xhr_listeners);
+ }
}