This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Empty sublex_info into the parser struct
authorFather Chrysostomos <sprout@cpan.org>
Wed, 3 Aug 2016 06:58:52 +0000 (23:58 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Wed, 3 Aug 2016 07:40:44 +0000 (00:40 -0700)
commit7ef70b3d59ec815fef24083df58e1ce363c63287
tree9b7ce4723a32968a53204870adad42a9207af06f
parent53225858d8a26c52154c06943d0ee5227573617c
Empty sublex_info into the parser struct

sublex_info is never validly copied or set* all at once and no pointer
is ever taken to it.  It seems to be left over from the time when
PL_sublex_info was a global variable.  (Indeed, the struct is still
defined in perl.h, an odd place for something used only by parser.h.)

It will be easier to eliminate alignment holes in the parser struct if
we just empty it out.

* The one instance of sublex_info being copied, in
sv.c:Perl_parser_dup, ended up potentially sharing an SV between
threads, which is a no-no.  I say potentially, because I can’t see how
it could be non-null during thread cloning, which would have to happen
between sublex_start and sublex_push.
parser.h
perl.h
sv.c
toke.c