This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Delay @ISA magic while unshifting
pp_unshift() first calls av_unshift(), which prepends the the
requisite number of undefs, then calls av_store() for each item.
However, unlike pp_push() it was not setting PL_delaymagic around the
av_store() loop, so when unshifting onto @ISA, its magic would be
triggered while there were still undefs in the array, causig the
following spurious warning:
$ perl -wE 'package Foo; unshift @ISA, qw(A B)'
Use of uninitialized value in unshift at -e line 1.
Also fix pp_push() to save and restore PL_delaymagic instead of
clearing it, so that e.g. unshifting a tied value with FETCH pushing
onto another @ISA doesn't erroneously clear the value from underneath
the unshift.