Project

Profile

Help

Bug #1639

closed

Incorrect comparison of two evaluated empty sequences in bytecode generation mode

Added by Max Zhaloba about 12 years ago. Updated over 11 years ago.

Status:
Closed
Priority:
Normal
Category:
-
Sprint/Milestone:
-
Start date:
2012-10-26
Due date:
% Done:

100%

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

Description

The attached stylesheet produces


Files

bytecode.xsl (788 Bytes) bytecode.xsl Max Zhaloba, 2012-10-26 17:28
Actions #1

Updated by Max Zhaloba about 12 years ago

The attached stylesheet applied to any document produces "true" when bytecode generation is off and an empty sequence when it's on. Returning an empty sequence as a result of functions f1 and f2 violates their return types. The bug can be bypassed changing the 'eq' operator to '='.

Actions #2

Updated by Michael Kay about 12 years ago

  • Assignee set to O'Neil Delpratt

Thanks for reporting it. We'll look into it. You may not hear from us for a few days as we're all away at W3C meetings this week.

Actions #3

Updated by Michael Kay about 12 years ago

We're working on it. Note that when $A is an empty sequence and f() throws an error, the result of ($A = f()) can be either an empty sequence or an error - both results are allowed. (The system isn't required to evaluate the second operand just to see if it throws an error.) The same is true for the "eq" operator. However, with bytecode generation on, we seem to be generating incorrect code for the case not($A eq f()) - the result should either be true or an error, never an empty sequence.

Actions #4

Updated by O'Neil Delpratt about 12 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

Bug fixed and committed to bytecode, which will be available in the next maintenance release.

Actions #5

Updated by O'Neil Delpratt over 11 years ago

  • Status changed from Resolved to Closed
  • Fixed in version set to 9.4.0.7

Bug closed. Fixed in Saxon maintenance release 9.4.0.7

Please register to edit this issue

Also available in: Atom PDF