std.experimental.allocator and GC.addRange
Basile B. via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Oct 19 04:17:19 PDT 2016
On Wednesday, 19 October 2016 at 08:34:57 UTC, Benjamin Thaut
wrote:
> Lets assume I have a allocator which cains together multiple
> building blocks from std.experimental.allocator and at the end
> there is a mallocator providing the underlying memory. Now I
> alloacte a type which contains a pointer into GC memory.
> Obviously the memory of the mallocator is not scanned by the GC
> so the pointer might become dangling if the GC chooses to
> collect. I'm wondering if std.experimental.allocator has any
> building blocks or mechanism to automatically call GC.addRange.
>
> Kind Regards
> Benjamin Thaut
No and that's a problem. There was a thread the other day about
that:
https://forum.dlang.org/thread/iubialncuhahhxsfvbbg@forum.dlang.org
The problem is easily verifiable:
https://issues.dlang.org/show_bug.cgi?id=15790
The solution would be to add a static scanner in make. (the range
must be added before the call the __ctor).
More information about the Digitalmars-d-learn
mailing list