[fpc-pascal] Access Violation When SetLength(DynArray, Value)
sysrpl at gmail.com
Thu Sep 8 09:30:19 CEST 2022
Is there a known edge case issue connected to setting the length
of dynamic arrays?
I have a program that simulates a billiards game, and during the rerack
balls method of TPoolTable the number of pool balls on the table varies
based on the rerack option used. Currently, I am having a problem where an
exception is thrown if I try to SetLenth(Balls, 10) or greater than 10.
Values less than 10 work fine, but at 10 balls and above an exception is
thrown right at the SetLength call.
000000000041DCA4 eb12 jmp 0x41dcb8
000000000041DCA6 4c89f0 mov %r14,%rax
000000000041DCA9 488b5008 mov 0x8(%rax),%rdx
000000000041DCAD 488b4018 mov 0x18(%rax),%rax
000000000041DCB1 488982a8000000 mov %rax,0xa8(%rdx)
^ instruction pointer is at this line ^
I tried compiler both FPC 3.3.1 from trunk source and 3.2.2 from the
official Sourceforge binary. The same error occurs when building with both
compilers. My platform is x86_64 Linux.
For reference here is the type of Balls:
TVec2 = record
X, Y: Single;
TPoolBall = record
TPoolBalls = array of TPoolBall;
... later inside TPoolTable ...
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the fpc-pascal