toStringz in std.file
Hi! Why in std.file toStringz used without store a pointer in function body to prevent GC collection? https://github.com/D-Programming-Language/phobos/blob/master/std/file.d Best Regards, Ilya
Re: toStringz in std.file
On Wednesday, 29 January 2014 at 08:27:14 UTC, Ilya Yaroshenko wrote: Hi! Why in std.file toStringz used without store a pointer in function body to prevent GC collection? https://github.com/D-Programming-Language/phobos/blob/master/std/file.d Best Regards, Ilya It is assumed that the pointer is not moved to the C heap where the GC can't see it. The stack is the stack; it doesn't matter if it's a D or C function, the GC sees it anyway.
Re: toStringz in std.file
On Wednesday, 29 January 2014 at 08:29:42 UTC, Jakob Ovrum wrote: On Wednesday, 29 January 2014 at 08:27:14 UTC, Ilya Yaroshenko wrote: Hi! Why in std.file toStringz used without store a pointer in function body to prevent GC collection? https://github.com/D-Programming-Language/phobos/blob/master/std/file.d Best Regards, Ilya It is assumed that the pointer is not moved to the C heap where the GC can't see it. The stack is the stack; it doesn't matter if it's a D or C function, the GC sees it anyway. Thanks!