www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - toStringz in std.file

reply "Ilya Yaroshenko" <ilyayaroshenko gmail.com> writes:
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
Jan 29 2014
parent reply "Jakob Ovrum" <jakobovrum gmail.com> writes:
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.
Jan 29 2014
parent "Ilya Yaroshenko" <ilyayaroshenko gmail.com> writes:
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!
Jan 29 2014