| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. | 5 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. |
| 6 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 6 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 7 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> | 7 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> |
| 8 * | 8 * |
| 9 * Redistribution and use in source and binary forms, with or without | 9 * Redistribution and use in source and binary forms, with or without |
| 10 * modification, are permitted provided that the following conditions | 10 * modification, are permitted provided that the following conditions |
| (...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 374 // To match Mozilla, the AT_TARGET phase fires both capturing and bubbli
ng | 374 // To match Mozilla, the AT_TARGET phase fires both capturing and bubbli
ng |
| 375 // event listeners, even though that violates some versions of the DOM s
pec. | 375 // event listeners, even though that violates some versions of the DOM s
pec. |
| 376 registeredListener.listener->handleEvent(context, event); | 376 registeredListener.listener->handleEvent(context, event); |
| 377 InspectorInstrumentation::didHandleEvent(cookie); | 377 InspectorInstrumentation::didHandleEvent(cookie); |
| 378 } | 378 } |
| 379 d->firingEventIterators->removeLast(); | 379 d->firingEventIterators->removeLast(); |
| 380 } | 380 } |
| 381 | 381 |
| 382 const EventListenerVector& EventTarget::getEventListeners(const AtomicString& ev
entType) | 382 const EventListenerVector& EventTarget::getEventListeners(const AtomicString& ev
entType) |
| 383 { | 383 { |
| 384 AtomicallyInitializedStatic(EventListenerVector*, emptyVector = new EventLis
tenerVector); | 384 AtomicallyInitializedStaticReference(EventListenerVector, emptyVector, new E
ventListenerVector); |
| 385 | 385 |
| 386 EventTargetData* d = eventTargetData(); | 386 EventTargetData* d = eventTargetData(); |
| 387 if (!d) | 387 if (!d) |
| 388 return *emptyVector; | 388 return emptyVector; |
| 389 | 389 |
| 390 EventListenerVector* listenerVector = d->eventListenerMap.find(eventType); | 390 EventListenerVector* listenerVector = d->eventListenerMap.find(eventType); |
| 391 if (!listenerVector) | 391 if (!listenerVector) |
| 392 return *emptyVector; | 392 return emptyVector; |
| 393 | 393 |
| 394 return *listenerVector; | 394 return *listenerVector; |
| 395 } | 395 } |
| 396 | 396 |
| 397 Vector<AtomicString> EventTarget::eventTypes() | 397 Vector<AtomicString> EventTarget::eventTypes() |
| 398 { | 398 { |
| 399 EventTargetData* d = eventTargetData(); | 399 EventTargetData* d = eventTargetData(); |
| 400 return d ? d->eventListenerMap.eventTypes() : Vector<AtomicString>(); | 400 return d ? d->eventListenerMap.eventTypes() : Vector<AtomicString>(); |
| 401 } | 401 } |
| 402 | 402 |
| 403 void EventTarget::removeAllEventListeners() | 403 void EventTarget::removeAllEventListeners() |
| 404 { | 404 { |
| 405 EventTargetData* d = eventTargetData(); | 405 EventTargetData* d = eventTargetData(); |
| 406 if (!d) | 406 if (!d) |
| 407 return; | 407 return; |
| 408 d->eventListenerMap.clear(); | 408 d->eventListenerMap.clear(); |
| 409 | 409 |
| 410 // Notify firing events planning to invoke the listener at 'index' that | 410 // Notify firing events planning to invoke the listener at 'index' that |
| 411 // they have one less listener to invoke. | 411 // they have one less listener to invoke. |
| 412 if (d->firingEventIterators) { | 412 if (d->firingEventIterators) { |
| 413 for (size_t i = 0; i < d->firingEventIterators->size(); ++i) { | 413 for (size_t i = 0; i < d->firingEventIterators->size(); ++i) { |
| 414 d->firingEventIterators->at(i).iterator = 0; | 414 d->firingEventIterators->at(i).iterator = 0; |
| 415 d->firingEventIterators->at(i).end = 0; | 415 d->firingEventIterators->at(i).end = 0; |
| 416 } | 416 } |
| 417 } | 417 } |
| 418 } | 418 } |
| 419 | 419 |
| 420 } // namespace blink | 420 } // namespace blink |
| OLD | NEW |