… | |
… | |
598 | |
598 | |
599 | SV *k = decode_sv (dec); |
599 | SV *k = decode_sv (dec); |
600 | SV *v = decode_sv (dec); |
600 | SV *v = decode_sv (dec); |
601 | |
601 | |
602 | hv_store_ent (hv, k, v, 0); |
602 | hv_store_ent (hv, k, v, 0); |
|
|
603 | SvREFCNT_dec (k); |
603 | } |
604 | } |
604 | } |
605 | } |
605 | else |
606 | else |
606 | { |
607 | { |
607 | int len = decode_uint (dec); |
608 | int len = decode_uint (dec); |
… | |
… | |
610 | { |
611 | { |
611 | SV *k = decode_sv (dec); |
612 | SV *k = decode_sv (dec); |
612 | SV *v = decode_sv (dec); |
613 | SV *v = decode_sv (dec); |
613 | |
614 | |
614 | hv_store_ent (hv, k, v, 0); |
615 | hv_store_ent (hv, k, v, 0); |
|
|
616 | SvREFCNT_dec (k); |
615 | } |
617 | } |
616 | } |
618 | } |
617 | |
619 | |
618 | DEC_DEC_DEPTH; |
620 | DEC_DEC_DEPTH; |
619 | return newRV_noinc ((SV *)hv); |
621 | return newRV_noinc ((SV *)hv); |
… | |
… | |
708 | |
710 | |
709 | PUTBACK; |
711 | PUTBACK; |
710 | call_sv ((SV *)GvCV (method), G_SCALAR); |
712 | call_sv ((SV *)GvCV (method), G_SCALAR); |
711 | SPAGAIN; |
713 | SPAGAIN; |
712 | |
714 | |
|
|
715 | SvREFCNT_dec (sv); |
713 | sv = SvREFCNT_inc (POPs); |
716 | sv = SvREFCNT_inc (POPs); |
714 | |
717 | |
715 | PUTBACK; |
718 | PUTBACK; |
716 | |
719 | |
717 | FREETMPS; LEAVE; |
720 | FREETMPS; LEAVE; |