toStringz in std.file

2014-01-29 Thread Ilya Yaroshenko

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

2014-01-29 Thread Jakob Ovrum
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

2014-01-29 Thread Ilya Yaroshenko

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!