Skip to content

Commit 7826f2f

Browse files
committed
fix test_lzma
1 parent d6ba4a6 commit 7826f2f

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

  • graalpython
    • com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/lzma
    • python-liblzma/src

‎graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/lzma/LZMANodes.java‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1385,7 +1385,11 @@ static void buildFilterSpec(VirtualFrame frame, Node inliningTarget, long[] opts
13851385
case LZMA_FILTER_ARM:
13861386
case LZMA_FILTER_ARMTHUMB:
13871387
case LZMA_FILTER_SPARC:
1388-
addField(frame, inliningTarget, setItem, dict, BCJOption.start_offset.OptName(), opts[BCJOption.start_offset.ordinal()]);
1388+
// reusing unused array field for checking if options is null
1389+
int isOptionNil = BCJOption.start_offset.ordinal() + 1;
1390+
if (opts[isOptionNil] == 0) {
1391+
addField(frame, inliningTarget, setItem, dict, BCJOption.start_offset.OptName(), opts[BCJOption.start_offset.ordinal()]);
1392+
}
13891393
break;
13901394
}
13911395
}

‎graalpython/python-liblzma/src/lzma.c‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -656,6 +656,7 @@ int lzma_encode_filter_spec(lzmast_stream *lzmast, int64_t* opts) {
656656

657657
// nfi_function: name('decodeFilter') map('lzmast_stream*', 'POINTER')
658658
int lzma_decode_filter_spec(int64_t filter_id, Byte* encoded_props, int len, int64_t *opts) {
659+
LOG_INFO("lzma_decode_filter_spec(filter_id=%ld, encoded_props=%p, len=%d, opts=%p)\n", filter_id, encoded_props, len, opts);
659660

660661
lzma_ret lzret;
661662
lzma_filter filter;
@@ -699,7 +700,10 @@ int lzma_decode_filter_spec(int64_t filter_id, Byte* encoded_props, int len, int
699700
case LZMA_FILTER_ARMTHUMB:
700701
case LZMA_FILTER_SPARC: {
701702
lzma_options_bcj *options = filter.options;
702-
opts[START_OFFSET_INDEX] = options->start_offset;
703+
if (options) {
704+
opts[START_OFFSET_INDEX] = options->start_offset;
705+
}
706+
opts[START_OFFSET_INDEX + 1] = filter.options == NULL;
703707
break;
704708
}
705709
default:

0 commit comments

Comments
 (0)