diff options
author | Chris 'BinGOs' Williams <chris@bingosnet.co.uk> | 2012-12-27 21:49:23 +0000 |
---|---|---|
committer | Chris 'BinGOs' Williams <chris@bingosnet.co.uk> | 2012-12-27 21:49:23 +0000 |
commit | c9612cb4a5ee19f5c24c8b9e3615e5f55881ed68 (patch) | |
tree | 19eeed9415365b9eb881777321919891b333928a /cpan/List-Util | |
parent | d72a6fbd28855c4fdeaebdfb8a420addd1751e8b (diff) | |
download | perl-c9612cb4a5ee19f5c24c8b9e3615e5f55881ed68.tar.gz |
Update Scalar-List-Utils to CPAN version 1.27
[DELTA]
1.26_001 -- Sun Dec 23 15:58
* Fix multicall refcount bug RT#80646
Diffstat (limited to 'cpan/List-Util')
-rw-r--r-- | cpan/List-Util/Changes | 4 | ||||
-rw-r--r-- | cpan/List-Util/ListUtil.xs | 16 | ||||
-rw-r--r-- | cpan/List-Util/lib/List/Util.pm | 2 | ||||
-rw-r--r-- | cpan/List-Util/lib/List/Util/XS.pm | 2 | ||||
-rw-r--r-- | cpan/List-Util/lib/Scalar/Util.pm | 2 |
5 files changed, 23 insertions, 3 deletions
diff --git a/cpan/List-Util/Changes b/cpan/List-Util/Changes index d390576fb4..9ab980432e 100644 --- a/cpan/List-Util/Changes +++ b/cpan/List-Util/Changes @@ -1,3 +1,7 @@ +1.26_001 -- Sun Dec 23 15:58 + + * Fix multicall refcount bug RT#80646 + 1.26 -- Sun Dec 16 19:39 * Merge patch from JDHEDDEN - Add Scalar::Util::isdual() RT#76150 diff --git a/cpan/List-Util/ListUtil.xs b/cpan/List-Util/ListUtil.xs index 93e415c180..1ae74cd6ef 100644 --- a/cpan/List-Util/ListUtil.xs +++ b/cpan/List-Util/ListUtil.xs @@ -58,6 +58,10 @@ my_sv_copypv(pTHX_ SV *const dsv, SV *const ssv) # define slu_sv_value(sv) (SvIOK(sv)) ? (NV)(SvIVX(sv)) : (SvNV(sv)) #endif +#if PERL_VERSION < 13 || (PERL_VERSION == 13 && PERL_SUBVERSION < 9) +# define PERL_HAS_BAD_MULTICALL_REFCOUNT +#endif + MODULE=List::Util PACKAGE=List::Util void @@ -252,6 +256,10 @@ CODE: MULTICALL; SvSetSV(ret, *PL_stack_sp); } +#ifdef PERL_HAS_BAD_MULTICALL_REFCOUNT + if (CvDEPTH(multicall_cv) > 1) + SvREFCNT_inc_simple_void_NN(multicall_cv); +#endif POP_MULTICALL; } else { @@ -300,11 +308,19 @@ CODE: GvSV(PL_defgv) = args[index]; MULTICALL; if (SvTRUEx(*PL_stack_sp)) { +#ifdef PERL_HAS_BAD_MULTICALL_REFCOUNT + if (CvDEPTH(multicall_cv) > 1) + SvREFCNT_inc_simple_void_NN(multicall_cv); +#endif POP_MULTICALL; ST(0) = ST(index); XSRETURN(1); } } +#ifdef PERL_HAS_BAD_MULTICALL_REFCOUNT + if (CvDEPTH(multicall_cv) > 1) + SvREFCNT_inc_simple_void_NN(multicall_cv); +#endif POP_MULTICALL; } else { diff --git a/cpan/List-Util/lib/List/Util.pm b/cpan/List-Util/lib/List/Util.pm index 39c4e7e903..5988aa914e 100644 --- a/cpan/List-Util/lib/List/Util.pm +++ b/cpan/List-Util/lib/List/Util.pm @@ -13,7 +13,7 @@ require Exporter; our @ISA = qw(Exporter); our @EXPORT_OK = qw(first min max minstr maxstr reduce sum sum0 shuffle); -our $VERSION = "1.26"; +our $VERSION = "1.27"; our $XS_VERSION = $VERSION; $VERSION = eval $VERSION; diff --git a/cpan/List-Util/lib/List/Util/XS.pm b/cpan/List-Util/lib/List/Util/XS.pm index 1fca3e4576..01b944b5ab 100644 --- a/cpan/List-Util/lib/List/Util/XS.pm +++ b/cpan/List-Util/lib/List/Util/XS.pm @@ -2,7 +2,7 @@ package List::Util::XS; use strict; use List::Util; -our $VERSION = "1.26"; # FIXUP +our $VERSION = "1.27"; # FIXUP $VERSION = eval $VERSION; # FIXUP 1; diff --git a/cpan/List-Util/lib/Scalar/Util.pm b/cpan/List-Util/lib/Scalar/Util.pm index b73f1e64f7..da22989349 100644 --- a/cpan/List-Util/lib/Scalar/Util.pm +++ b/cpan/List-Util/lib/Scalar/Util.pm @@ -26,7 +26,7 @@ our @EXPORT_OK = qw( tainted weaken ); -our $VERSION = "1.26"; +our $VERSION = "1.27"; $VERSION = eval $VERSION; our @EXPORT_FAIL; |