On Sunday, 21 August 2016 at 16:14:53 UTC, Zane wrote:
1) If using the GC, but for whatever reason, I need to free something _right now_, is core.GC.free() the proper way to do this?

The main problem is that `new` does not necessarily give you a pointer to the start of an allocation, and `GC.free()` does not work if you give it a pointer to the interior of an allocated block.

You could use `GC.addrOf()` to get the base address from an interior pointer, but I don't know whether there could be other objects/arrays sharing the same memory block.

If you explicitly allocated the memory block yourself with `GC.malloc()` then you have full control over what is placed in it and can safely `GC.free()` the memory using the base address.

Keep in mind, `GC.free()` does not call finalisers.

Reply via email to