Does associative array change the location of values?
Stanislav Blinov
stanislav.blinov at gmail.com
Sat Oct 30 21:20:15 UTC 2021
On Saturday, 30 October 2021 at 20:19:58 UTC, Imperatorn wrote:
>> https://dlang.org/spec/garbage.html#pointers_and_gc
>
> What test could be written to verify the behaviour?
Assuming the GC was moving?
You'd need a loop allocating different sizes, storing the
addresses somewhere the GC won't see (i.e. in memory allocated
not with the GC: malloc, VirtualAlloc, mmap...), orphaning some
allocations, repeating a bunch of times, and then comparing
addresses of remaining allocations with stored ones.
Behavior would very much depend on the GC implementation, so
would a concrete test. Point is, it's allowed to move so we have
to assume it would even if it doesn't, and relying on it not
moving (i.e. depending on concrete addresses) is UB.
More information about the Digitalmars-d-learn
mailing list