diff options
author | Dave Mitchell <davem@fdisolutions.com> | 2004-03-26 13:05:50 +0000 |
---|---|---|
committer | Dave Mitchell <davem@fdisolutions.com> | 2004-03-26 13:05:50 +0000 |
commit | dfa41748806263fb8b5d5fcb051bd36be96fe93c (patch) | |
tree | 489e1161a9e207248764b6552aba3327e675d317 /scope.h | |
parent | 61967be2c930c0a1754925d7a1d1c2924a3b57ab (diff) | |
download | perl-dfa41748806263fb8b5d5fcb051bd36be96fe93c.tar.gz |
[perl #27040] - hints hash was being double freed on scope exit
p4raw-id: //depot/perl@22594
Diffstat (limited to 'scope.h')
-rw-r--r-- | scope.h | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -152,14 +152,14 @@ Closing bracket on a callback. See C<ENTER> and L<perlcall>. #define SAVEOP() save_op() #define SAVEHINTS() \ - STMT_START { \ - if (PL_hints & HINT_LOCALIZE_HH) \ - save_hints(); \ - else { \ - SSCHECK(2); \ - SSPUSHINT(PL_hints); \ - SSPUSHINT(SAVEt_HINTS); \ - } \ + STMT_START { \ + SSCHECK(3); \ + if (PL_hints & HINT_LOCALIZE_HH) { \ + SSPUSHPTR(GvHV(PL_hintgv)); \ + GvHV(PL_hintgv) = newHVhv(GvHV(PL_hintgv)); \ + } \ + SSPUSHINT(PL_hints); \ + SSPUSHINT(SAVEt_HINTS); \ } STMT_END #define SAVECOMPPAD() \ |