D needs emplacement new
anonymous via Digitalmars-d
digitalmars-d at puremagic.com
Fri May 1 15:44:23 PDT 2015
On Monday, 27 April 2015 at 13:12:51 UTC, anonymous wrote:
> ----
> void main()
> {
> import std.stdio;
> import core.memory: GC;
>
> auto pointerInDisguise = new size_t;
> *pointerInDisguise = cast(size_t) cast(void*) new Object;
>
> /* Not sure why stomping is necessary, but without this,
> the first
> try below fails. */
Probably issue 9614 - Uninitialized holes in function stack
frames confuses GC - https://issues.dlang.org/show_bug.cgi?id=9614
> static void stomp() {ubyte[1024] x;}
> stomp();
> GC.collect();
> writeln(cast(size_t) cast(void*) new Object ==
> *pointerInDisguise);
> /* prints "true" => memory is reused */
>
> GC.collect();
> writeln(cast(size_t) cast(void*) new Object ==
> *pointerInDisguise);
> /* prints "true" => memory is reused */
> }
> ----
More information about the Digitalmars-d
mailing list