diff options
author | Paul "LeoNerd" Evans <leonerd@leonerd.org.uk> | 2020-06-27 16:09:49 +0100 |
---|---|---|
committer | Paul Evans <leonerd@leonerd.org.uk> | 2020-07-20 15:40:42 +0100 |
commit | ae955d3a183337a4770d39640a21da146cf97bc7 (patch) | |
tree | 989e9fabb2b3f451857b67831ca453b85a334841 /thread.h | |
parent | c1d551e18b0505f4fadf5d7cd6b07de35589bd42 (diff) | |
download | perl-ae955d3a183337a4770d39640a21da146cf97bc7.tar.gz |
Ensure stack is in consistent state while restoring SAVEt_HINTS
SAVEt_HINTS has a non-constant savestack structure. If the
HINT_LOCALIZE_HH flag was set it pushes an additional pointer. In some
complex code scenarios it is possible reënter Perl code while destroying
nested PL_hintgv hashes (for example, if any stored objects contain
`free` magic). Because of this, it is important that we pop the extra
value from the save stack before any other code can be invoked, so if
they need to inspect or alter the save stack, they can do so in a
consistent manner.
See also
https://github.com/Perl/perl5/issues/17895
Diffstat (limited to 'thread.h')
0 files changed, 0 insertions, 0 deletions