diff options
author | Sergey Skvortsov <skv@FreeBSD.org> | 2009-04-04 09:06:53 +0000 |
---|---|---|
committer | Sergey Skvortsov <skv@FreeBSD.org> | 2009-04-04 09:06:53 +0000 |
commit | d70143844849daaab2b798d1f12f92ba5037be3f (patch) | |
tree | 01e3fef15f2eb91721ec1e9ecc54d96ce294a67f /lang/perl5.12/files/patch-bug56908 | |
parent | update to 0.62.2 (diff) |
Add several bugfixes, imported from maint-5.10
(i.e. will be included into forthcoming 5.10.1).
Notes
Notes:
svn path=/head/; revision=231575
Diffstat (limited to 'lang/perl5.12/files/patch-bug56908')
-rw-r--r-- | lang/perl5.12/files/patch-bug56908 | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/lang/perl5.12/files/patch-bug56908 b/lang/perl5.12/files/patch-bug56908 new file mode 100644 index 000000000000..f6789866cff7 --- /dev/null +++ b/lang/perl5.12/files/patch-bug56908 @@ -0,0 +1,31 @@ +# http://rt.perl.org/rt3/Public/Bug/Display.html?id=56908 +# http://perl5.git.perl.org/perl.git/commitdiff/b17f5ab768c4daa8faac6c85c0c20d3895f406e1?hp=7ee5fac837a8a4ebf1956da1b1d252aa82fe506d +diff --git a/hv.c b/hv.c +index 3d4d3af..24d9150 100644 +--- hv.c ++++ hv.c +@@ -1985,6 +1985,7 @@ Perl_hv_kill_backrefs(pTHX_ HV *hv) { + if (av) { + HvAUX(hv)->xhv_backreferences = 0; + Perl_sv_kill_backrefs(aTHX_ (SV*) hv, av); ++ SvREFCNT_dec(av); + } + } + +diff --git a/sv.c b/sv.c +index 04d6e43..4792ad1 100644 +--- sv.c ++++ sv.c +@@ -10784,10 +10784,11 @@ Perl_sv_dup(pTHX_ const SV *const sstr, CLONE_PARAMS *const param) + daux->xhv_eiter = saux->xhv_eiter + ? he_dup(saux->xhv_eiter, + (bool)!!HvSHAREKEYS(sstr), param) : 0; ++ /* backref array needs refcnt=2; see sv_add_backref */ + daux->xhv_backreferences = + saux->xhv_backreferences + ? (AV*) SvREFCNT_inc( +- sv_dup((SV*)saux->xhv_backreferences, param)) ++ sv_dup_inc((SV*)saux->xhv_backreferences, param)) + : 0; + + daux->xhv_mro_meta = saux->xhv_mro_meta |