On Sat, Nov 19, 2011 at 5:12 PM, Andi Vajda <va...@apache.org> wrote:
>
>  Hi Mike,
>
> On Sat, 19 Nov 2011, Michael McCandless wrote:
>
>> If I run this:
>>
>>   import lucene
>>   import types
>>
>>   arr = lucene.JArray(types.IntType)([1, 2, 3, 4])
>>
>> it makes a length 4 int array, initialized with 1, 2, 3, 4.
>>
>> But then if I try to slice this array like this:
>>
>>   print arr[0:]
>>
>> it prints:
>>
>>   [1, 2, 3]
>>
>> but I think it should print:
>>
>>   [1, 2, 3, 4]
>>
>> ie, it's losing the last element.
>>
>> If instead I slice with an explicit end index (arr[0:4]), it works
>> correctly...
>>
>> Any ideas?
>
> You hit a bug.
>
> I still had left some ints around where Python expects a Py_ssize_t
> and the INT_MAX parameter passed when the end of the slice is omitted turned
> into -1, thus turning arr[0:] into arr[0:-1] on 64-bit systems. Not good.

Ooh, sneaky!

> Thank you very much for reporting this !
>
> Fixed in rev 1204095.

Thank you for fixing it so quickly!

Mike

Reply via email to