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]

Reply via email to