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.