This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #29070] Add vstring set-magic
authorFather Chrysostomos <sprout@cpan.org>
Fri, 23 Dec 2011 22:18:16 +0000 (14:18 -0800)
committerFather Chrysostomos <sprout@cpan.org>
Fri, 23 Dec 2011 22:45:55 +0000 (14:45 -0800)
commit1e6bda93199bc72086fd20f4dab89d46590b379a
treed3c9063779f46754f059847ce4708cd2dc3dad15
parentf0cd42383d11de42b3b8137c27c960b257975418
[perl #29070] Add vstring set-magic

Some operators, like pp_complement, assign their argument to TARG
(which copies vstring magic), modify it in place, and then call set-
magic.  That’s supposed to work, but vstring magic was remaining as it
was, such that ~v7 would still be treated as "v7" by vstring-aware
code, even though the resulting string is not "\7".

This commit adds vstring set-magic that checks to see whether the pv
still matches the vstring.  It cannot simply free the vstring magic,
as that would prevent $x=v0 from working.
embed.fnc
embed.h
mg.c
mg_raw.h
mg_vtable.h
proto.h
regen/mg_vtable.pl
t/op/bop.t