+2004-09-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XPathSequence.cs : workarounded bug #65521. Erased foreach inside
+ iterators.
+
2004-09-08 Atsushi Enomoto <atsushi@ximian.com>
* XPath2Expression.cs : fixed EnclosedExpr.Compile() that resulted
if (!passedFilter)
passedFilter = expr.WhereClause.EvaluateAsBoolean (contextSequence);
if (passedFilter) {
- foreach (XPathItem item in expr.ReturnExpr.Evaluate (contextSequence))
- yield return item;
+ IEnumerator ie = expr.ReturnExpr.Evaluate (contextSequence).GetEnumerator ();
+ while (ie.MoveNext ())
+ yield return (XPathItem) ie.Current;
}
}
XPathSequence backup = contextSequence;
XPathSequence current = sb.Expression.Evaluate (Context.CurrentSequence);
Context.ContextManager.PushCurrentSequence (current);
- foreach (XPathItem forItem in current) {
+ while (current.MoveNext ()) {
+ XPathItem forItem = (XPathItem) current.Current;
Context.PushVariable (fsb.PositionalVar, Context.CurrentSequence.Position);
Context.PushVariable (sb.VarName, forItem);
// recurse here (including following bindings)