--- CBOR-XS/XS.xs 2013/10/27 22:35:15 1.11 +++ CBOR-XS/XS.xs 2013/10/29 15:56:32 1.14 @@ -11,6 +11,17 @@ #include "ecb.h" +// compatibility with perl <5.18 +#ifndef HvNAMELEN_get +# define HvNAMELEN_get(hv) strlen (HvNAME (hv)) +#endif +#ifndef HvNAMELEN +# define HvNAMELEN(hv) HvNAMELEN_get (hv) +#endif +#ifndef HvNAMEUTF8 +# define HvNAMEUTF8(hv) 0 +#endif + // known tags enum cbor_tag { @@ -600,6 +611,7 @@ SV *v = decode_sv (dec); hv_store_ent (hv, k, v, 0); + SvREFCNT_dec (k); } } else @@ -612,6 +624,7 @@ SV *v = decode_sv (dec); hv_store_ent (hv, k, v, 0); + SvREFCNT_dec (k); } } @@ -710,6 +723,7 @@ call_sv ((SV *)GvCV (method), G_SCALAR); SPAGAIN; + SvREFCNT_dec (sv); sv = SvREFCNT_inc (POPs); PUTBACK;