mmidy 00/10/06 13:22:57
Modified: java/src/org/apache/xalan/templates ElemApplyTemplates.java
ElemCallTemplate.java
Log:
Fix when pushing and popping context markers
Revision Changes Path
1.3 +2 -8
xml-xalan/java/src/org/apache/xalan/templates/ElemApplyTemplates.java
Index: ElemApplyTemplates.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemApplyTemplates.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ElemApplyTemplates.java 2000/07/05 14:39:54 1.2
+++ ElemApplyTemplates.java 2000/10/06 20:22:54 1.3
@@ -162,16 +162,10 @@
mode = m_mode;
}
- // Dragons here. Push the params & stack frame, but then
- // execute the select statement inside transformSelectedNodes,
- // which must be executed in the stack frame before the
- // new stack frame. Because of depth-first searching, this
- // gets worse.
VariableStack vars = transformer.getXPathContext().getVarStack();
- int selectStackFrameIndex = vars.getCurrentStackFrameIndex();
+ int selectStackFrameIndex = vars.getCurrentStackFrameIndex();
- vars.pushContextMarker();
- vars.setCurrentStackFrameIndex(selectStackFrameIndex);
+ // This call will cause a context marker to be pushed into the stack
transformer.pushParams(getStylesheet(),
this,
sourceNode, mode);
1.4 +2 -4
xml-xalan/java/src/org/apache/xalan/templates/ElemCallTemplate.java
Index: ElemCallTemplate.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemCallTemplate.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ElemCallTemplate.java 2000/07/23 17:45:05 1.3
+++ ElemCallTemplate.java 2000/10/06 20:22:55 1.4
@@ -148,10 +148,8 @@
{
XPathContext xctxt = transformer.getXPathContext();
VariableStack vars = xctxt.getVarStack();
- int selectStackFrameIndex = vars.getCurrentStackFrameIndex();
+ // int selectStackFrameIndex = vars.getCurrentStackFrameIndex();
- vars.pushContextMarker();
- vars.setCurrentStackFrameIndex(selectStackFrameIndex);
transformer.pushParams(getStylesheet(),
this, sourceNode, mode);
vars.setCurrentStackFrameIndex(vars.size());
@@ -168,7 +166,7 @@
transformer.popElemTemplateElement();
xctxt.setSAXLocator(savedLocator);
vars.popCurrentContext();
- vars.setCurrentStackFrameIndex(selectStackFrameIndex);
+ // vars.setCurrentStackFrameIndex(selectStackFrameIndex);
}
}
else