You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by zo...@apache.org on 2002/11/26 16:02:36 UTC
cvs commit: xml-xalan/java/src/org/apache/xml/dtm/ref ExpandedNameTable.java
zongaro 2002/11/26 07:02:36
Modified: java/src/org/apache/xml/dtm/ref Tag: XSLTC_DTM
ExpandedNameTable.java
Log:
Changed m_extendedTypes from a Vector to an array of type ExtendedType. That
improves time to access the Vector and eliminates the need to cast the Object
returned by Vector.elementAt to type ExtendedType.
Revision Changes Path
No revision
No revision
1.4.2.5 +25 -15 xml-xalan/java/src/org/apache/xml/dtm/ref/ExpandedNameTable.java
Index: ExpandedNameTable.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xml/dtm/ref/ExpandedNameTable.java,v
retrieving revision 1.4.2.4
retrieving revision 1.4.2.5
diff -u -r1.4.2.4 -r1.4.2.5
--- ExpandedNameTable.java 22 Oct 2002 14:52:40 -0000 1.4.2.4
+++ ExpandedNameTable.java 26 Nov 2002 15:02:36 -0000 1.4.2.5
@@ -85,8 +85,8 @@
/** Probably a reference to static pool. */
//private DTMStringPool m_namespaceNames;
- /** Vector of extended types for this document */
- private /*static*/ Vector m_extendedTypes;
+ /** Array of extended types for this document */
+ private /*static*/ ExtendedType[] m_extendedTypes;
/** Next available extended type */
// %REVIEW% Since this is (should be) always equal
@@ -115,20 +115,20 @@
ExtendedType hashET=new ExtendedType(-1,"","");
private static Hashtable m_defaultHashtable;
- private static Vector m_defaultExtendedTypes;
+ private static ExtendedType[] m_defaultExtendedTypes;
/**
* Init default vales
*/
static {
// use bigger values than default, to avoid reallocation in the future
- m_defaultExtendedTypes = new Vector(23);
+ m_defaultExtendedTypes = new ExtendedType[23];
m_defaultHashtable = new Hashtable(23, 0.75f);
for (int i = 0; i < DTM.NTYPES; i++)
{
ExtendedType newET = new ExtendedType(i, "", "");
- m_defaultExtendedTypes.addElement(newET);
+ m_defaultExtendedTypes[i] = newET;
m_defaultHashtable.put(newET, new Integer(i));
}
}
@@ -163,11 +163,14 @@
*/
private void initExtendedTypes()
{
- // Since objects in the Vector a m_extendedTypes and m_hashtable are never changed
+ // Since objects in m_extendedTypes and m_hashtable are never changed
// it should be safe to copy default tables
- m_extendedTypes = (Vector)m_defaultExtendedTypes.clone();
+ m_extendedTypes = new ExtendedType[m_defaultExtendedTypes.length];
+ for (int i = 0; i < DTM.NTYPES; i++) {
+ m_extendedTypes[i] = m_defaultExtendedTypes[i];
+ }
m_hashtable = (Hashtable)m_defaultHashtable.clone();
- m_nextType = m_extendedTypes.size();
+ m_nextType = DTM.NTYPES;
}
/**
@@ -205,7 +208,13 @@
return ((Integer)eType).intValue();
ExtendedType newET=new ExtendedType(type, namespace, localName);
- m_extendedTypes.addElement(newET);
+ if (m_extendedTypes.length == m_nextType) {
+ ExtendedType[] newArray = new ExtendedType[m_extendedTypes.length*2];
+ System.arraycopy(m_extendedTypes, 0, newArray, 0,
+ m_extendedTypes.length);
+ m_extendedTypes = newArray;
+ }
+ m_extendedTypes[m_nextType] = newET;
m_hashtable.put(newET, new Integer(m_nextType));
return m_nextType++;
}
@@ -233,7 +242,7 @@
public String getLocalName(int ExpandedNameID)
{
//return m_locNamesPool.indexToString(ExpandedNameID & MASK_LOCALNAME);
- ExtendedType etype = (ExtendedType)m_extendedTypes.elementAt (ExpandedNameID);
+ ExtendedType etype = m_extendedTypes[ExpandedNameID];
return etype.localName;
}
@@ -246,7 +255,7 @@
public final int getLocalNameID(int ExpandedNameID)
{
//return (ExpandedNameID & MASK_LOCALNAME);
- ExtendedType etype = (ExtendedType)m_extendedTypes.elementAt (ExpandedNameID);
+ ExtendedType etype = m_extendedTypes[ExpandedNameID];
if (etype.localName.equals(""))
return 0;
else
@@ -266,7 +275,7 @@
//int id = (ExpandedNameID & MASK_NAMESPACE) >> BITS_PER_LOCALNAME;
//return (0 == id) ? null : m_namespaceNames.indexToString(id);
- ExtendedType etype = (ExtendedType)m_extendedTypes.elementAt (ExpandedNameID);
+ ExtendedType etype = m_extendedTypes[ExpandedNameID];
return (etype.namespace.equals("") ? null : etype.namespace);
}
@@ -279,7 +288,7 @@
public final int getNamespaceID(int ExpandedNameID)
{
//return (ExpandedNameID & MASK_NAMESPACE) >> BITS_PER_LOCALNAME;
- ExtendedType etype = (ExtendedType)m_extendedTypes.elementAt (ExpandedNameID);
+ ExtendedType etype = m_extendedTypes[ExpandedNameID];
if (etype.namespace.equals(""))
return 0;
else
@@ -294,7 +303,7 @@
*/
public final short getType(int ExpandedNameID)
{
- ExtendedType etype = (ExtendedType)m_extendedTypes.elementAt (ExpandedNameID);
+ ExtendedType etype = m_extendedTypes[ExpandedNameID];
return (short)etype.nodetype;
}
@@ -307,7 +316,7 @@
/**
* Private class representing an extended type object
*/
- private static class ExtendedType
+ private final static class ExtendedType
{
protected int nodetype;
protected String namespace;
@@ -364,6 +373,7 @@
return false;
}
}
+
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org