[M3devel] thread test results on Win7 64-bit

Rodney M. Bates rodney_bates at lcwb.coop
Tue Mar 22 19:45:28 CET 2011



The only subscript operation in this line is rd.buff[0].
 From the declaration of buff in RdClass.i3:32, buff has
type REF ARRAY OF CHAR.  If buff were NIL, it should give
a different runtime error (probably segfault).  With the
subscript being statically zero, the only way this could
happen is if buff was allocated with a zero NUMBER.  I
didn't go looking for that, but it seems unlikely.

Otherwise, it would have to be a corrupted heap object or
maybe miscompiled code.  Or the runtime error message is
wrong.  From this shallow reasoning, I would put my bet on
the corrupted object.

On 03/16/2011 07:13 PM, Tony Hosking wrote:
> This is the offending line:
>
> On Mar 16, 2011, at 6:50 PM, Coleburn, Randy wrote:
>
>> ***
>> *** runtime error:
>> *** An array subscript was out of range.
>> *** file "..\src\rw\FileRd.m3", line 83
>> ***
>
> n := rd.sourceH.read(
> SUBARRAY(LOOPHOLE(ADR(rd.buff[0]), ByteArrayPtr)^, 0,
> MIN (NUMBER(rd.buff^), BIG)), mayBlock := NOT dontBlock)
>
> I am very suspicious about this... anyone have any insights?
>




More information about the M3devel mailing list