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)
{
