sandygao    2002/08/29 11:40:00

  Modified:    java/src/org/apache/xerces/dom NamedNodeMapImpl.java
  Log:
  1. Don't always create a new Vector, while it's possible to reuse the old one.
  2. Relacing "Vector#insertElementAt()" with "setElementAt()". The latter is
  supposed to be a bit more efficient.
  
  Revision  Changes    Path
  1.32      +15 -8     xml-xerces/java/src/org/apache/xerces/dom/NamedNodeMapImpl.java
  
  Index: NamedNodeMapImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/NamedNodeMapImpl.java,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- NamedNodeMapImpl.java     24 Jul 2002 19:08:41 -0000      1.31
  +++ NamedNodeMapImpl.java     29 Aug 2002 18:40:00 -0000      1.32
  @@ -361,13 +361,20 @@
       }
   
       protected void cloneContent(NamedNodeMapImpl srcmap) {
  -     if (srcmap.nodes != null) {
  -            nodes = new Vector(srcmap.nodes.size());
  -            for (int i = 0; i < srcmap.nodes.size(); ++i) {
  -                NodeImpl n = (NodeImpl) srcmap.nodes.elementAt(i);
  -                NodeImpl clone = (NodeImpl) n.cloneNode(true);
  -                clone.isSpecified(n.isSpecified());
  -                nodes.insertElementAt(clone, i);
  +        Vector srcnodes = srcmap.nodes;
  +        if (srcnodes != null) {
  +            int size = srcnodes.size();
  +            if (size != 0) {
  +                if (nodes == null) {
  +                    nodes = new Vector(size);
  +                }
  +                nodes.setSize(size);
  +                for (int i = 0; i < size; ++i) {
  +                    NodeImpl n = (NodeImpl) srcmap.nodes.elementAt(i);
  +                    NodeImpl clone = (NodeImpl) n.cloneNode(true);
  +                    clone.isSpecified(n.isSpecified());
  +                    nodes.setElementAt(clone, i);
  +                }
               }
           }
       } // cloneMap():NamedNodeMapImpl
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to