[perl #96126] Allocate CvFILE more simply
authorFather Chrysostomos <sprout@cpan.org>
Tue, 16 Aug 2011 21:57:47 +0000 (14:57 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Wed, 17 Aug 2011 19:33:37 +0000 (12:33 -0700)
commitbad4ae388d7276039782b23915670f267acaff1d
tree5ffcb707b471358f918fd2da2bf6ad8f528a89a4
parent656b40dad946c5783030da9c7bd125c68dcfbb80
[perl #96126] Allocate CvFILE more simply

See the thread starting at:
http://www.nntp.perl.org/group/perl.perl5.porters/2011/07/msg175161.html

Instead of assuming that only Perl subs have mallocked CvFILEs and
only under threads, resulting in various hackery to borrow parts of
the SvPVX buffer where that assumption proves wrong, we can simply
add another flag (DYNFILE) to indicate whether CvFILE is mallocked,
instead of trying to use the ISXSUB flag for two purposes.

This simplifies the code greatly, eliminating bug #96126 in the pro-
cess (which had to do with sv_dup not knowing about the hackery that
this commit removes).

I removed that comment from cv_ckproto_len about CONSTSUBs doubling up
the buffer field, as it is no longer relevant.  But I still left the
code as it is, since it’s better to do an explicit length check.
cv.h
dump.c
ext/Devel-Peek/t/Peek.t
op.c
pad.c
pod/perldelta.pod
sv.c
universal.c