perl.c: Avoid redundant gv_AVadd and GvAVn
authorFather Chrysostomos <sprout@cpan.org>
Sat, 26 Oct 2013 12:42:08 +0000 (05:42 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Sat, 26 Oct 2013 12:42:08 +0000 (05:42 -0700)
We don’t need to call gv_AVadd if follewed by GvAVn, which itself
calls gv_AVadd when the AV is null.

Also, we don’t need to keep checking whether GvAV(PL_argvgv) is still
defined (via GvAVn with the final n) when pushing on to it.

This code goes back at least to perl 5 alpha 2.

perl.c

index e9cf22a..1835062 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -4250,11 +4250,10 @@ Perl_init_argv_symbols(pTHX_ int argc, char **argv)
     }
     if ((PL_argvgv = gv_fetchpvs("ARGV", GV_ADD|GV_NOTQUAL, SVt_PVAV))) {
        GvMULTI_on(PL_argvgv);
-       (void)gv_AVadd(PL_argvgv);
        av_clear(GvAVn(PL_argvgv));
        for (; argc > 0; argc--,argv++) {
            SV * const sv = newSVpv(argv[0],0);
-           av_push(GvAVn(PL_argvgv),sv);
+           av_push(GvAV(PL_argvgv),sv);
            if (!(PL_unicode & PERL_UNICODE_LOCALE_FLAG) || PL_utf8locale) {
                 if (PL_unicode & PERL_UNICODE_ARGV_FLAG)
                      SvUTF8_on(sv);