forked from epam/parso
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
epam#54 Fixed offsets for Column format detection
It looks like `SasFileParser.FormatAndLabelSubheader.processSubheader` and and `SasFileConstants` files should use another offsets to calculate column format information correctly for x64 bitness. Before a fix: ```java long COLUMN_FORMAT_WIDTH_OFFSET = 8L; long COLUMN_FORMAT_PRECISION_OFFSET = 10L; subheaderOffset + COLUMN_FORMAT_WIDTH_OFFSET + intOrLongLength, subheaderOffset + COLUMN_FORMAT_PRECISION_OFFSET + intOrLongLength, ``` For 32-bit: COLUMN_FORMAT_WIDTH_OFFSET + intOrLongLength = 8 + 4 = 12 (correct) COLUMN_FORMAT_PRECISION_OFFSET + intOrLongLength = 10 + 4 = 14 (correct) For 64-bit: COLUMN_FORMAT_WIDTH_OFFSET + intOrLongLength = 8 + 8 = 16 (not correct) COLUMN_FORMAT_PRECISION_OFFSET + intOrLongLength = 10 + 8 = 18 (not correct) After the fix: ```java long COLUMN_FORMAT_WIDTH_OFFSET = 0L; long COLUMN_FORMAT_PRECISION_OFFSET = 2L; subheaderOffset + COLUMN_FORMAT_PRECISION_OFFSET + 3 * intOrLongLength, subheaderOffset + COLUMN_FORMAT_TEXT_SUBHEADER_INDEX_OFFSET + 3 * intOrLongLength, ``` For 32-bit: COLUMN_FORMAT_WIDTH_OFFSET + 3 * intOrLongLength = 0 + 3 * 4 = 12 (correct and the same as above) COLUMN_FORMAT_PRECISION_OFFSET + 3 * intOrLongLength = 2 + 3 * 4 = 14 (correct and the same as above) For 64-bit: COLUMN_FORMAT_WIDTH_OFFSET + 3 *intOrLongLength = 0 + 3 * 8 = 24 (correct) COLUMN_FORMAT_PRECISION_OFFSET + 3 * intOrLongLength = 2 + 3 * 8 = 26 (correct) So, this new calculation gives exactly the same offsets for 32-bit files and also fixes it for 64-bit files.
- Loading branch information
1 parent
fc62a76
commit be12344
Showing
5 changed files
with
83 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.