lehors 2003/02/21 11:09:49
Modified: java/src/org/apache/xerces/dom DocumentImpl.java
Log:
in anticipation to the DOM Level 3 Event spec support, we now call event
listeners in the order in which they were registered
Revision Changes Path
1.76 +13 -8 xml-xerces/java/src/org/apache/xerces/dom/DocumentImpl.java
Index: DocumentImpl.java
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/DocumentImpl.java,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -r1.75 -r1.76
--- DocumentImpl.java 23 Aug 2002 20:14:38 -0000 1.75
+++ DocumentImpl.java 21 Feb 2003 19:09:49 -0000 1.76
@@ -746,8 +746,9 @@
Vector nodeListeners = getEventListeners(nn);
if (nodeListeners != null) {
Vector nl = (Vector) nodeListeners.clone();
- // count-down more efficient
- for (int i = nl.size() - 1; i >= 0; --i) {
+ // call listeners in the order in which they got registered
+ int nlsize = nl.size();
+ for (int i = 0; i < nlsize; i++) {
LEntry le = (LEntry) nl.elementAt(i);
if (le.useCapture && le.type.equals(evt.type) &&
nodeListeners.contains(le)) {
@@ -773,8 +774,9 @@
Vector nodeListeners = getEventListeners(node);
if (!evt.stopPropagation && nodeListeners != null) {
Vector nl = (Vector) nodeListeners.clone();
- // count-down is more efficient
- for (int i = nl.size() - 1; i >= 0; --i) {
+ // call listeners in the order in which they got registered
+ int nlsize = nl.size();
+ for (int i = 0; i < nlsize; i++) {
LEntry le = (LEntry) nl.elementAt(i);
if (!le.useCapture && le.type.equals(evt.type) &&
nodeListeners.contains(le)) {
@@ -794,7 +796,8 @@
// Note that not all events bubble.
if (evt.bubbles) {
evt.eventPhase = Event.BUBBLING_PHASE;
- for (int j = 0; j < pv.size(); ++j) {
+ int pvsize = pv.size();
+ for (int j = 0; j < pvsize; j++) {
if (evt.stopPropagation)
break; // Someone set the flag. Phase ends.
@@ -804,8 +807,10 @@
nodeListeners = getEventListeners(nn);
if (nodeListeners != null) {
Vector nl = (Vector) nodeListeners.clone();
- // count-down more efficient
- for (int i = nl.size() - 1; i >= 0; --i) {
+ // call listeners in the order in which they got
+ // registered
+ int nlsize = nl.size();
+ for (int i = 0; i < nlsize; i++) {
LEntry le = (LEntry) nl.elementAt(i);
if (!le.useCapture && le.type.equals(evt.type) &&
nodeListeners.contains(le)) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]