On Wednesday, 12 November 2014 at 14:42:34 UTC, Chris wrote:
On Wednesday, 12 November 2014 at 14:26:15 UTC, ketmar via
if you can extend C DLL, just add wrapper for `free()` there. so you will not call `free()` from D, but call C DLL function which will free the memory. it's a good practice anyway, 'cause it's recommended to
free memory in the same library where you allocated it.

I initially had an implementation that did exactly that (I usually do that), but for some reason it didn't work properly in this particular case and caused all sorts of undefined behavior. But I'll have a look at it again.

I've changed the code so that the memory is freed in C. Although it works "better" it crashes too every now and then

(WindowsError : exception : access violation writing 0x0310A1B4)

Will look into it.

Reply via email to