morten      01/09/20 07:33:30

  Modified:    java/src/org/apache/xalan/xsltc/compiler Step.java
  Log:
  A fix for layers of parent location paths and steps representing an
  XPath pattern/expression like /foo/*/bar
  PR:           bugzilla 3311
  Obtained from:        n/a
  Submitted by: [EMAIL PROTECTED]
  Reviewed by:  [EMAIL PROTECTED]
  
  Revision  Changes    Path
  1.10      +9 -3      
xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Step.java
  
  Index: Step.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Step.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Step.java 2001/08/27 09:07:19     1.9
  +++ Step.java 2001/09/20 14:33:30     1.10
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Step.java,v 1.9 2001/08/27 09:07:19 morten Exp $
  + * @(#)$Id: Step.java,v 1.10 2001/09/20 14:33:30 morten Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -80,7 +80,7 @@
       private final Vector _predicates;        // may be null
   
       // Type of the node test.
  -    private final int _nodeType;
  +    private int _nodeType;
   
       private boolean _hadPredicates = false;
   
  @@ -143,7 +143,6 @@
        return _nodeType;
       }
   
  -
       /**
        * Returns the vector containing all predicates for this step.
        */
  @@ -277,6 +276,13 @@
            if (_type == Type.Node) {
                il.append(methodGen.loadContextNode());
                return;
  +         }
  +
  +         // Special case for /foo/*/bar
  +         SyntaxTreeNode parent = getParent();
  +         if ((parent instanceof ParentLocationPath) &&
  +             (parent.getParent() instanceof ParentLocationPath)) {
  +             if (_nodeType == NodeTest.ELEMENT) _nodeType = NodeTest.ANODE;
            }
   
            // "ELEMENT" or "*" or "@*" or ".." or "@attr" with a parent.
  
  
  

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

Reply via email to