Thread overview
toStringz in std.file
Jan 29, 2014
Ilya Yaroshenko
Jan 29, 2014
Jakob Ovrum
Jan 29, 2014
Ilya Yaroshenko
January 29, 2014
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
January 29, 2014
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.
January 29, 2014
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!