dbertoni    01/01/08 10:26:58

  Modified:    c/src/XPath SimpleNodeLocator.cpp
  Log:
  Removed support for processing without namespaces.  Removed references to 
XPathSupport.  Better scoping of variables in nodeTest().
  
  Revision  Changes    Path
  1.29      +18 -8     xml-xalan/c/src/XPath/SimpleNodeLocator.cpp
  
  Index: SimpleNodeLocator.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/SimpleNodeLocator.cpp,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- SimpleNodeLocator.cpp     2001/01/03 19:32:39     1.28
  +++ SimpleNodeLocator.cpp     2001/01/08 18:26:57     1.29
  @@ -1486,13 +1486,11 @@
                                                        0 == length(targetNS) &&
                                                        
currentExpression.getOpCodeMapValue(opPos) == XPathExpression::eELEMWILDCARD;
   
  -                             const bool      processNamespaces = 
executionContext.getProcessNamespaces();
  -
                                bool            didMatchNS = false;
   
  -                             if(isTotallyWild == false && processNamespaces 
== true)
  +                             if(isTotallyWild == false)
                                {
  -                                     const XalanDOMString&   contextNS = 
executionContext.getNamespaceOfNode(*context);
  +                                     const XalanDOMString&   contextNS = 
context->getNamespaceURI();
   
                                        if(0 != length(targetNS) && 0 != 
length(contextNS))
                                        {
  @@ -1515,9 +1513,6 @@
   
                                if(test == true)
                                {
  -                                     const XalanDOMString&   targetLocalName 
=
  -                                                             queueIndex >= 0 
? currentExpression.getToken(queueIndex)->str() : s_emptyString;
  -
                                        switch(nodeType)
                                        {
                                        case XalanNode::ATTRIBUTE_NODE:
  @@ -1556,8 +1551,13 @@
                                                                {
                                                                        if 
(isNamespace == false)
                                                                        {
  +                                                                             
assert(queueIndex >= 0);
  +
  +                                                                             
const XalanDOMString&   targetLocalName =
  +                                                                             
                                        
currentExpression.getToken(queueIndex)->str();
  +
                                                                                
const XalanDOMString&   localAttrName =
  -                                                                             
        DOMServices::getLocalNameOfNode(*context);
  +                                                                             
                DOMServices::getLocalNameOfNode(*context);
   
                                                                                
if (equals(localAttrName, targetLocalName) == true)
                                                                                
{
  @@ -1580,6 +1580,11 @@
                                                                                
const XalanDOMString&   theNamespace =
                                                                                
                        theAttrNode->getValue();
   
  +                                                                             
assert(queueIndex >= 0);
  +
  +                                                                             
const XalanDOMString&   targetLocalName =
  +                                                                             
                                        
currentExpression.getToken(queueIndex)->str();
  +
                                                                                
if (equals(theNamespace, targetLocalName) == true)
                                                                                
{
                                                                                
        score = xpath.s_MatchScoreQName;
  @@ -1600,6 +1605,11 @@
                                                        }
                                                        else
                                                        {
  +                                                             
assert(queueIndex >= 0);
  +
  +                                                             const 
XalanDOMString&   targetLocalName =
  +                                                                             
                                        
currentExpression.getToken(queueIndex)->str();
  +
                                                                if 
(equals(DOMServices::getLocalNameOfNode(*context),
                                                                                
   targetLocalName) == true)
                                                                {
  
  
  

Reply via email to