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 firsttry 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 */ } ----
