mkwan       2003/02/26 10:03:26

  Modified:    java/src/org/apache/xml/dtm/ref/sax2dtm Tag: XSLTC_DTM
                        SAX2DTM2.java
  Log:
  XSLTC_DTM performance work
  Set the nextsib element of an attribute or namespace node to -1.
  This makes the logic in the iterators simpler and easier to
  maintain.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.19  +16 -39    
xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm/Attic/SAX2DTM2.java
  
  Index: SAX2DTM2.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xml/dtm/ref/sax2dtm/Attic/SAX2DTM2.java,v
  retrieving revision 1.1.2.18
  retrieving revision 1.1.2.19
  diff -u -r1.1.2.18 -r1.1.2.19
  --- SAX2DTM2.java     26 Feb 2003 15:48:08 -0000      1.1.2.18
  +++ SAX2DTM2.java     26 Feb 2003 18:03:25 -0000      1.1.2.19
  @@ -290,7 +290,7 @@
   
         final int nodeType = _nodeType;
   
  -      if (nodeType >= DTM.NTYPES) {
  +      if (nodeType != DTM.ELEMENT_NODE) {
           /*
           while (node != DTM.NULL && _exptype2(node) != nodeType) {
             node = _nextsib2(node);
  @@ -303,7 +303,7 @@
         // an element can be either an element, text, comment or
         // processing instruction node. Only element node has an extended
         // type greater than or equal to DTM.NTYPES.
  -      else if (nodeType == DTM.ELEMENT_NODE) {
  +      else {
                int eType;
                while (node != DTM.NULL) {
                  eType = _exptype2(node);
  @@ -313,20 +313,6 @@
                    node = _nextsib2(node);
                }
         }
  -      else {
  -        int eType;
  -        while (node != DTM.NULL) {
  -          eType = _exptype2(node);
  -          if (eType < DTM.NTYPES) {
  -            if (eType == nodeType) {
  -              break;
  -            }
  -          } else if (m_extendedTypes[eType].getNodeType() == nodeType) {
  -            break;
  -          }
  -          node = _nextsib2(node);
  -        }
  -      }
   
         if (node == DTM.NULL) {
           _currentNode = DTM.NULL;
  @@ -475,24 +461,13 @@
         int node = _currentNode;
         final int nodeType = _nodeType;
   
  -      if (nodeType >= DTM.NTYPES) {
  +      if (nodeType != DTM.ELEMENT_NODE) {
           node = getTypedFollowingSibling(node, nodeType);
  -      } 
  +      }
         else {
  -        int eType;
  -        while ((node = _nextsib2(node)) != DTM.NULL) {
  -          eType = _exptype2(node);
  -          if (eType < DTM.NTYPES) {
  -            if (eType == nodeType) {
  -              break;
  -            }
  -          }
  -          else if (m_extendedTypes[eType].getNodeType() == nodeType) {
  -            break;
  -          }
  -        }
  +        while ((node = _nextsib2(node)) != DTM.NULL && _exptype2(node) < 
DTM.NTYPES) {}
         }
  -
  +      
         _currentNode = node;
   
         return (node == DTM.NULL)
  @@ -1971,7 +1946,7 @@
   
       int startDecls = m_contextIndexes.peek();
       int nDecls = m_prefixMappings.size();
  -    int prev = DTM.NULL;
  +    //int prev = DTM.NULL;
       String prefix;
   
       if(!m_pastFirstElement)
  @@ -1981,8 +1956,8 @@
         String declURL = "http://www.w3.org/XML/1998/namespace";;
         exName = m_expandedNameTable.getExpandedTypeID(null, prefix, 
DTM.NAMESPACE_NODE);
         int val = m_valuesOrPrefixes.stringToIndex(declURL);
  -      prev = addNode(DTM.NAMESPACE_NODE, exName, elemNode,
  -                     prev, val, false);
  +      addNode(DTM.NAMESPACE_NODE, exName, elemNode,
  +                     DTM.NULL, val, false);
         m_pastFirstElement=true;
       }
   
  @@ -1999,8 +1974,8 @@
   
         int val = m_valuesOrPrefixes.stringToIndex(declURL);
   
  -      prev = addNode(DTM.NAMESPACE_NODE, exName, elemNode,
  -                     prev, val, false);
  +      addNode(DTM.NAMESPACE_NODE, exName, elemNode,
  +                     DTM.NULL, val, false);
       }
   
       int n = attributes.getLength();
  @@ -2056,12 +2031,14 @@
         }
   
         exName = m_expandedNameTable.getExpandedTypeID(attrUri, attrLocalName, 
nodeType);
  -      prev = addNode(nodeType, exName, elemNode, prev, val,
  +      addNode(nodeType, exName, elemNode, DTM.NULL, val,
                        false);
       }
   
  +    /*
       if (DTM.NULL != prev)
         m_nextsib.setElementAt(DTM.NULL,prev);
  +    */
   
       if (null != m_wsfilter)
       {
  @@ -2233,8 +2210,8 @@
         addNewDTMID(nodeIndex);
       }
   
  -    m_firstch.addElement(canHaveFirstChild ? NOTPROCESSED : DTM.NULL);
  -    m_nextsib.addElement(NOTPROCESSED);
  +    m_firstch.addElement(DTM.NULL);
  +    m_nextsib.addElement(DTM.NULL);
       m_prevsib.addElement(previousSibling);
       m_parent.addElement(parentIndex);
       m_exptype.addElement(expandedTypeID);
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to