Dan Sugalski <[EMAIL PROTECTED]> wrote:
> cvsuser     04/08/23 13:24:37

>   Modified:    build_tools build_nativecall.pl
>   Log:
>   Due to an amazing amount of ineffable evil in hash.c, build_nativecall
>   got redone to use a PerlHash and PMCs instead of the lower-level access
>   system it had, since that wasn't working

Well, the Evil wasn't in hash.c, the creation of the hash was bogus. It
used a pointer PMC to hold the Hash. So that hash got never marked
during DOD. I've now tried s/enum_class_Pointer/enum_class_PerlHash/ and it
works as expected.

But there is another problem with the original cstring hash. It uses
string_to_cstring() and never frees the result. OTOH instead of
converting the passed STRING to a cstring we could as well keep your
patch, which doesn't need the conversion.

For the final version we should probably use CONST_STRING for the
signatures, which should be more efficient (with the macro on its own
line to work around compiler issues).

leo

Reply via email to