You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by le...@locus.apache.org on 2000/06/13 03:04:40 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/dom NamedNodeMapImpl.java AttributeMap.java

lehors      00/06/12 18:04:40

  Modified:    java/src/org/apache/xerces/dom NamedNodeMapImpl.java
                        AttributeMap.java
  Log:
  fixed yet another bug in cloneMap and made it faster,
  also reverse the way cloneContent works so that it changes this rather than
  the map given in argument
  
  Revision  Changes    Path
  1.17      +7 -7      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.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- NamedNodeMapImpl.java	2000/06/02 00:45:16	1.16
  +++ NamedNodeMapImpl.java	2000/06/13 01:04:39	1.17
  @@ -353,18 +353,18 @@
        
       public NamedNodeMapImpl cloneMap(NodeImpl ownerNode) {
       	NamedNodeMapImpl newmap = new NamedNodeMapImpl(ownerNode);
  -        cloneContent(newmap);
  +        newmap.cloneContent(this);
       	return newmap;
       }
   
  -    protected void cloneContent(NamedNodeMapImpl newmap) {
  -    	if (nodes != null) {
  -            newmap.nodes = new Vector(nodes.size());
  -            for (int i = 0; i < nodes.size(); ++i) {
  -                NodeImpl n = (NodeImpl) nodes.elementAt(i);
  +    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.specified(n.specified());
  -                newmap.setNamedItem(clone);
  +                nodes.insertElementAt(clone, i);
               }
           }
       } // cloneMap():NamedNodeMapImpl
  
  
  
  1.2       +4 -10     xml-xerces/java/src/org/apache/xerces/dom/AttributeMap.java
  
  Index: AttributeMap.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/AttributeMap.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AttributeMap.java	2000/05/25 01:58:30	1.1
  +++ AttributeMap.java	2000/06/13 01:04:40	1.2
  @@ -86,16 +86,10 @@
       protected AttributeMap(ElementImpl ownerNode, NamedNodeMapImpl defaults) {
           super(ownerNode);
           if (defaults != null) {
  -            hasDefaults(true);
               // initialize map with the defaults
  -            if (defaults.nodes != null) {
  -                nodes = new Vector(defaults.nodes.size());
  -                for (int i = 0; i < nodes.size(); ++i) {
  -                    NodeImpl node = (NodeImpl) defaults.nodes.elementAt(i);
  -                    NodeImpl clone = (NodeImpl) node.cloneNode(true);
  -                    clone.specified(false); // mark it as a default attr
  -                    setNamedItem(clone);
  -                }
  +            cloneContent(defaults);
  +            if (nodes != null) {
  +                hasDefaults(true);
               }
           }
       }
  @@ -445,7 +439,7 @@
       	AttributeMap newmap =
               new AttributeMap((ElementImpl) ownerNode, null);
           newmap.hasDefaults(hasDefaults());
  -        cloneContent(newmap);
  +        newmap.cloneContent(this);
       	return newmap;
       } // cloneMap():AttributeMap