Project

Profile

Help

Bug #3352

closed

Tail call optimization of xsl:call-template not working in 9.8

Added by Michael Kay over 7 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Performance
Sprint/Milestone:
-
Start date:
2017-07-15
Due date:
% Done:

100%

Estimated time:
Legacy ID:
Applies to branch:
9.8
Fix Committed on Branch:
9.8
Fixed in Maintenance Release:
Platforms:

Description

Tail call optimization of xsl;call-template (and possibly xsl:apply-templates) is not working in 9.8. Deep recursion results in

Too many nested template or function calls. The stylesheet may be looping.
  at xsl:call-template name="call" (file:/Users/mike/Desktop/temp/test.xsl#22)
  at xsl:call-template name="call" (file:/Users/mike/Desktop/temp/test.xsl#22)

In 9.7, XSLTemplate.postValidate() contained the code

isTailRecursive = markTailCalls();

which has disappeared in 9.8.

Please register to edit this issue

Also available in: Atom PDF