string_reverse(undef);
Does that actually free() the memory ?
I would be wanting to see proof that the
if(output != NULL){} block is being entered:
if(output != NULL) {
free(output);
printf("YES - output was free()ed\n");
}
I guess that the $ffi->attach() line might somehow provide the necessary magic.
Note: I've just installed FFI::Platypus (Windows 11, perl-5.36.0) - it required some force, and installed a shudderingly disturbing amount of Alien::* (and other) shit.
But I couldn't quickly get anywhere with the demo that you supplied. Does that demo comprise 2 separate files ? If so, how are they linked ?
I've no experience with GC_MALLOC, and hadn't even heard of it.
I'll read, with interest, the thoughts of any who might have used this.
In the Inline::C/XS environment, if I want to avoid having to explicitly free/Safefree memory, then I'll create objects blessed into a specific package and have perl automagically free/Safefree the objects as perl sees appropriate.
Cheers,
Rob