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]