You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by ga...@apache.org on 2001/08/12 20:06:58 UTC
cvs commit: xml-xalan/java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
garyp 01/08/12 11:06:58
Modified: java/src/org/apache/xml/dtm DTMManager.java
java/src/org/apache/xml/dtm/ref DTMManagerDefault.java
Log:
Fixes inspired by bugzilla bug 2308 (http://nagoya.apache.org/bugzilla/show_bug.cgi?id=2308). The maximum number of DTMs is calculated based on the number of bits left over for the DTM number. The m_dtms array is allocated only at this length to avoid generating a DTMId greater than the maximum available. I changed a sign-extended shift to a non-sign-extended shift to allow access to the upper have of the DTMId range. Also changed the -1 ^ x syntax to ~x which I find much more understandable.
Revision Changes Path
1.6 +6 -1 xml-xalan/java/src/org/apache/xml/dtm/DTMManager.java
Index: DTMManager.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xml/dtm/DTMManager.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- DTMManager.java 2001/08/10 17:57:20 1.5
+++ DTMManager.java 2001/08/12 18:06:57 1.6
@@ -539,7 +539,12 @@
/** When this bitmask is ANDed with a DTM node handle number, the result
* is the DTM's document identity number.
*/
- public static final int IDENT_DTM_DEFAULT = -1 ^ IDENT_NODE_DEFAULT;
+ public static final int IDENT_DTM_DEFAULT = ~IDENT_NODE_DEFAULT;
+
+ /** This is the maximum number of DTMs available. The highest DTM is
+ * one less than this.
+ */
+ public static final int IDENT_MAX_DTMS = (IDENT_DTM_DEFAULT >>> IDENT_DTM_NODE_BITS) + 1;
/**
1.20 +2 -2 xml-xalan/java/src/org/apache/xml/dtm/ref/DTMManagerDefault.java
Index: DTMManagerDefault.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xml/dtm/ref/DTMManagerDefault.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- DTMManagerDefault.java 2001/08/10 17:57:37 1.19
+++ DTMManagerDefault.java 2001/08/12 18:06:58 1.20
@@ -105,7 +105,7 @@
/**
* Vector of DTMs that this manager manages.
*/
- protected DTM m_dtms[] = new DTM[4095];
+ protected DTM m_dtms[] = new DTM[IDENT_MAX_DTMS];
/**
* Add a DTM to the DTM table.
@@ -546,7 +546,7 @@
{
// Performance critical function.
- return m_dtms[nodeHandle >> IDENT_DTM_NODE_BITS];
+ return m_dtms[nodeHandle >>> IDENT_DTM_NODE_BITS];
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org