zongaro     2002/12/21 02:24:51

  Modified:    java/src/org/apache/xml/dtm/ref Tag: XSLTC_DTM
                        DTMDefaultBase.java
  Log:
  Split loop in getTypedFirstChild in two - one to handle matching against an
  expanded type ID and a second to handle matching against a DTM node type.  The
  two cases can be handled more efficiently separately.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.28.2.8  +18 -4     
xml-xalan/java/src/org/apache/xml/dtm/ref/DTMDefaultBase.java
  
  Index: DTMDefaultBase.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xml/dtm/ref/DTMDefaultBase.java,v
  retrieving revision 1.28.2.7
  retrieving revision 1.28.2.8
  diff -u -r1.28.2.7 -r1.28.2.8
  --- DTMDefaultBase.java       17 Dec 2002 19:06:41 -0000      1.28.2.7
  +++ DTMDefaultBase.java       21 Dec 2002 10:24:51 -0000      1.28.2.8
  @@ -982,11 +982,25 @@
     {
   
       int firstChild, eType;
  -    for(firstChild = _firstch(makeNodeIdentity(nodeHandle));firstChild != 
DTM.NULL; firstChild = _nextsib(firstChild))
  -    {
  -     if ((eType =_exptype(firstChild)) == nodeType || 
m_expandedNameTable.getType(eType) == nodeType)
  -     //_type(firstChild) == nodeType)
  +    if (nodeType < DTM.NTYPES) {
  +      for (firstChild = _firstch(makeNodeIdentity(nodeHandle));
  +           firstChild != DTM.NULL;
  +           firstChild = _nextsib(firstChild)) {
  +        eType = _exptype(firstChild);
  +        if (eType == nodeType
  +               || (eType >= DTM.NTYPES
  +                      && m_expandedNameTable.getType(eType) == nodeType)) {
             return makeNodeHandle(firstChild);
  +        }
  +      }
  +    } else {
  +      for (firstChild = _firstch(makeNodeIdentity(nodeHandle));
  +           firstChild != DTM.NULL;
  +           firstChild = _nextsib(firstChild)) {
  +     if (_exptype(firstChild) == nodeType) {
  +          return makeNodeHandle(firstChild);
  +        }
  +      }
       }
       return DTM.NULL;
     }
  
  
  

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

Reply via email to