diff options
author | Father Chrysostomos <sprout@cpan.org> | 2012-11-29 22:49:09 -0800 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2012-11-30 18:02:35 -0800 |
commit | c2b36a6de0f63707e6ca496d5f88e40d768a6c0e (patch) | |
tree | 137a2fd68e746f7351f0232cb23be16f066784ac /pad.c | |
parent | 9593456923bf641a10e8faeb51720606580a4fec (diff) | |
download | perl-c2b36a6de0f63707e6ca496d5f88e40d768a6c0e.tar.gz |
Stop duplicate lex vars from leaking under fatal warnings
Diffstat (limited to 'pad.c')
-rw-r--r-- | pad.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -627,8 +627,12 @@ Perl_pad_add_name_pvn(pTHX_ const char *namepv, STRLEN namelen, flags &= ~padadd_UTF8_NAME; if ((flags & padadd_NO_DUP_CHECK) == 0) { + ENTER; + SAVEFREESV(namesv); /* in case of fatal warnings */ /* check for duplicate declaration */ pad_check_dup(namesv, flags & padadd_OUR, ourstash); + SvREFCNT_inc_simple_void_NN(namesv); + LEAVE; } offset = pad_alloc_name(namesv, flags & ~padadd_UTF8_NAME, typestash, ourstash); |