You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by mr...@apache.org on 2004/07/09 05:01:58 UTC
cvs commit: xml-xerces/java/src/org/apache/xerces/impl/xs/traversers XSDComplexTypeTraverser.java
mrglavas 2004/07/08 20:01:58
Modified: java/src/org/apache/xerces/impl XMLEntityManager.java
java/src/org/apache/xerces/impl/xs/traversers
XSDComplexTypeTraverser.java
Log:
Performance fix: Replace building of strings
using concatenation in while loops with StringBuffers.
Thanks to Dave Brosius for the patch.
Revision Changes Path
1.81 +9 -6 xml-xerces/java/src/org/apache/xerces/impl/XMLEntityManager.java
Index: XMLEntityManager.java
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/XMLEntityManager.java,v
retrieving revision 1.80
retrieving revision 1.81
diff -u -r1.80 -r1.81
--- XMLEntityManager.java 9 Jul 2004 02:13:36 -0000 1.80
+++ XMLEntityManager.java 9 Jul 2004 03:01:58 -0000 1.81
@@ -745,16 +745,19 @@
? fCurrentEntity
: (Entity)fEntityStack.elementAt(i);
if (activeEntity.name == entityName) {
- String path = entityName;
+ StringBuffer path = new StringBuffer(entityName);
for (int j = i + 1; j < size; j++) {
activeEntity = (Entity)fEntityStack.elementAt(j);
- path = path + " -> " + activeEntity.name;
+ path.append(" -> ");
+ path.append(activeEntity.name);
}
- path = path + " -> " + fCurrentEntity.name;
- path = path + " -> " + entityName;
+ path.append(" -> ");
+ path.append(fCurrentEntity.name);
+ path.append(" -> ");
+ path.append(entityName);
fErrorReporter.reportError(XMLMessageFormatter.XML_DOMAIN,
"RecursiveReference",
- new Object[] { entityName, path },
+ new Object[] { entityName, path.toString() },
XMLErrorReporter.SEVERITY_FATAL_ERROR);
if (fEntityHandler != null) {
fResourceIdentifier.clear();
1.43 +4 -5 xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.java
Index: XSDComplexTypeTraverser.java
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.java,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -r1.42 -r1.43
--- XSDComplexTypeTraverser.java 24 Feb 2004 22:59:14 -0000 1.42
+++ XSDComplexTypeTraverser.java 9 Jul 2004 03:01:58 -0000 1.43
@@ -1058,14 +1058,13 @@
// names of parent nodes
// The name is quite good for debugging/error purposes, but we may want to
// revisit how this is done for performance reasons (LM).
- String typeName;
+ StringBuffer typeName = new StringBuffer("#AnonType_");
Element node = DOMUtil.getParent(complexTypeDecl);
- typeName="#AnonType_";
while (node != null && (node != DOMUtil.getRoot(DOMUtil.getDocument(node)))) {
- typeName = typeName+node.getAttribute(SchemaSymbols.ATT_NAME);
+ typeName.append(node.getAttribute(SchemaSymbols.ATT_NAME));
node = DOMUtil.getParent(node);
}
- return typeName;
+ return typeName.toString();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org