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]