On Sunday, 6 August 2017 at 17:16:05 UTC, bitwise wrote:


I was referring specifically to storing gc_malloc'ed pointers on the stack, meaning that I'm calling a C++ function on a D call stack, and storing the pointer as a local var in the C++ function before returning it to D.

The more I think about it, the more I think it has to be ok to do. Unless D stores [ESP] to some variable at each extern(*) function call, then the GC would have no choice but indifference as to what side of the language boundary it was scanning on. If it did, I imagine it would say so here:

https://dlang.org/spec/cpp_interface.html#memory-allocation

Yes, as long as you can guarantee it stays on the stack you should be good to go.

Reply via email to