This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Remove 4 from new gv_autoload4_(sv|pvn?) functions
authorFather Chrysostomos <sprout@cpan.org>
Sun, 2 Oct 2011 05:13:26 +0000 (22:13 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Thu, 6 Oct 2011 20:01:00 +0000 (13:01 -0700)
The 4 was added in commit 54310121b442 (inseparable changes during
5.003/4 developement), presumably the ‘Don't look up &AUTOLOAD in @ISA
when calling plain function’ part.

Before that, gv_autoload had three arguments, so the 4 indicated the
new version (with the method argument).

Since these new functions don’t all have four arguments, and since
they have a new naming convention, there is not reason for the 4.

embed.fnc
embed.h
ext/XS-APItest/APItest.xs
ext/XS-APItest/t/gv_autoload4.t
gv.c
gv.h
proto.h

index dffaaba..0fe0d3d 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -431,10 +431,10 @@ Apmb      |GV*    |gv_HVadd       |NULLOK GV *gv
 Apmb   |GV*    |gv_IOadd       |NULLOK GV* gv
 AmR    |GV*    |gv_autoload4   |NULLOK HV* stash|NN const char* name \
                                |STRLEN len|I32 method
-ApR    |GV*    |gv_autoload4_sv        |NULLOK HV* stash|NN SV* namesv|I32 method|U32 flags
-ApR    |GV*    |gv_autoload4_pv        |NULLOK HV* stash|NN const char* namepv \
+ApR    |GV*    |gv_autoload_sv |NULLOK HV* stash|NN SV* namesv|I32 method|U32 flags
+ApR    |GV*    |gv_autoload_pv |NULLOK HV* stash|NN const char* namepv \
                                         |I32 method|U32 flags
-ApR    |GV*    |gv_autoload4_pvn       |NULLOK HV* stash|NN const char* name \
+ApR    |GV*    |gv_autoload_pvn        |NULLOK HV* stash|NN const char* name \
                                         |STRLEN len|I32 method|U32 flags
 Ap     |void   |gv_check       |NN const HV* stash
 Ap     |void   |gv_efullname   |NN SV* sv|NN const GV* gv
diff --git a/embed.h b/embed.h
index a606ba9..3e06942 100644 (file)
--- a/embed.h
+++ b/embed.h
 #define grok_numeric_radix(a,b)        Perl_grok_numeric_radix(aTHX_ a,b)
 #define grok_oct(a,b,c,d)      Perl_grok_oct(aTHX_ a,b,c,d)
 #define gv_add_by_type(a,b)    Perl_gv_add_by_type(aTHX_ a,b)
-#define gv_autoload4_pv(a,b,c,d)       Perl_gv_autoload4_pv(aTHX_ a,b,c,d)
-#define gv_autoload4_pvn(a,b,c,d,e)    Perl_gv_autoload4_pvn(aTHX_ a,b,c,d,e)
-#define gv_autoload4_sv(a,b,c,d)       Perl_gv_autoload4_sv(aTHX_ a,b,c,d)
+#define gv_autoload_pv(a,b,c,d)        Perl_gv_autoload_pv(aTHX_ a,b,c,d)
+#define gv_autoload_pvn(a,b,c,d,e)     Perl_gv_autoload_pvn(aTHX_ a,b,c,d,e)
+#define gv_autoload_sv(a,b,c,d)        Perl_gv_autoload_sv(aTHX_ a,b,c,d)
 #define gv_check(a)            Perl_gv_check(aTHX_ a)
 #define gv_const_sv(a)         Perl_gv_const_sv(aTHX_ a)
 #define gv_dump(a)             Perl_gv_dump(aTHX_ a)
index d0fa057..618bd32 100644 (file)
@@ -1953,7 +1953,7 @@ gv_fetchmethod_flags_type(stash, methname, type, flags)
        XPUSHs( gv ? (SV*)gv : &PL_sv_undef);
 
 void
-gv_autoload4_type(stash, methname, type, method, flags)
+gv_autoload_type(stash, methname, type, method, flags)
     HV* stash
     SV* methname
     int type
@@ -1969,13 +1969,13 @@ gv_autoload4_type(stash, methname, type, method, flags)
               gv = gv_autoload4(stash, name, len, method);
                break;
            case 1:
-               gv = gv_autoload4_sv(stash, methname, method, flags);
+               gv = gv_autoload_sv(stash, methname, method, flags);
                break;
            case 2:
-               gv = gv_autoload4_pv(stash, name, method, flags | SvUTF8(methname));
+               gv = gv_autoload_pv(stash, name, method, flags | SvUTF8(methname));
                break;
            case 3:
-               gv = gv_autoload4_pvn(stash, name, len, method, flags | SvUTF8(methname));
+               gv = gv_autoload_pvn(stash, name, len, method, flags | SvUTF8(methname));
                break;
         }
        XPUSHs( gv ? (SV*)gv : &PL_sv_undef);
index beec17e..dc4e227 100644 (file)
@@ -8,7 +8,7 @@ use Test::More tests => 19; #31;
 use_ok('XS::APItest');
 
 my $method = 0;
-my @types  = map { 'gv_autoload4' . $_ } '', qw( _sv _pv _pvn );
+my @types  = map { 'gv_autoload' . $_ } qw( 4 _sv _pv _pvn );
 
 sub AUTOLOAD {
     our $AUTOLOAD;
@@ -18,28 +18,28 @@ sub AUTOLOAD {
 
 my $sub = "nothing";
 
-ok my $glob = XS::APItest::gv_autoload4_type(\%::, $sub, 1, $method, 0);
+ok my $glob = XS::APItest::gv_autoload_type(\%::, $sub, 1, $method, 0);
 *{$glob}{CODE}->( __PACKAGE__ . "::" . $sub, '$AUTOLOAD set correctly' );
 
 $sub = "some_sub";
 for my $type ( 0..3 ) {
-    is $glob = XS::APItest::gv_autoload4_type(\%::, $sub, $type, $method, 0), "*main::AUTOLOAD", "*main::AUTOLOAD if autoload is true in $types[$type].";
+    is $glob = XS::APItest::gv_autoload_type(\%::, $sub, $type, $method, 0), "*main::AUTOLOAD", "*main::AUTOLOAD if autoload is true in $types[$type].";
     *{$glob}{CODE}->( __PACKAGE__ . "::" . $sub, '$AUTOLOAD set correctly' );
 }
 
 $sub = "method\0not quite!";
 
-ok $glob = XS::APItest::gv_autoload4_type(\%::, $sub, 0, $method, 0);
+ok $glob = XS::APItest::gv_autoload_type(\%::, $sub, 0, $method, 0);
 *{$glob}{CODE}->( __PACKAGE__ . "::" . $sub, "gv_autoload4() is nul-clean");
 
-ok $glob = XS::APItest::gv_autoload4_type(\%::, $sub, 1, $method, 0);
-*{$glob}{CODE}->( __PACKAGE__ . "::" . $sub, "gv_autoload4_sv() is nul-clean");
+ok $glob = XS::APItest::gv_autoload_type(\%::, $sub, 1, $method, 0);
+*{$glob}{CODE}->( __PACKAGE__ . "::" . $sub, "gv_autoload_sv() is nul-clean");
 
-ok $glob = XS::APItest::gv_autoload4_type(\%::, $sub, 2, $method, 0);
-*{$glob}{CODE}->( __PACKAGE__ . "::" . ($sub =~ s/\0.*//r), "gv_autoload4_pv() is not nul-clean");
+ok $glob = XS::APItest::gv_autoload_type(\%::, $sub, 2, $method, 0);
+*{$glob}{CODE}->( __PACKAGE__ . "::" . ($sub =~ s/\0.*//r), "gv_autoload_pv() is not nul-clean");
 
-ok $glob = XS::APItest::gv_autoload4_type(\%::, $sub, 3, $method, 0);
-*{$glob}{CODE}->( __PACKAGE__ . "::" . $sub, "gv_autoload4_pvn() is nul-clean");
+ok $glob = XS::APItest::gv_autoload_type(\%::, $sub, 3, $method, 0);
+*{$glob}{CODE}->( __PACKAGE__ . "::" . $sub, "gv_autoload_pvn() is nul-clean");
 
 =begin
 {
@@ -55,9 +55,9 @@ ok $glob = XS::APItest::gv_autoload4_type(\%::, $sub, 3, $method, 0);
     }
 
     for my $type ( 1..3 ) {
-        ::ok $glob = XS::APItest::gv_autoload4_type(\%main::, $sub = "method", $type, $method, 0);
+        ::ok $glob = XS::APItest::gv_autoload_type(\%main::, $sub = "method", $type, $method, 0);
         *{$glob}{CODE}->( "main::" . $sub, "$types[$type]() is UTF8-clean when both the stash and the sub are in UTF-8");
-        ::ok $glob = XS::APItest::gv_autoload4_type(\%main::, $sub = "method", $type, $method, 0);
+        ::ok $glob = XS::APItest::gv_autoload_type(\%main::, $sub = "method", $type, $method, 0);
         *{$glob}{CODE}->( "main::" . $sub, "$types[$type]() is UTF8-clean when only the stash is in UTF-8");
     }
 }
diff --git a/gv.c b/gv.c
index 77d3ef0..81326d5 100644 (file)
--- a/gv.c
+++ b/gv.c
@@ -1079,26 +1079,26 @@ Perl_gv_fetchmethod_pvn_flags(pTHX_ HV *stash, const char *name, const STRLEN le
 }
 
 GV*
-Perl_gv_autoload4_sv(pTHX_ HV *stash, SV* namesv, I32 method, U32 flags)
+Perl_gv_autoload_sv(pTHX_ HV *stash, SV* namesv, I32 method, U32 flags)
 {
    char *namepv;
    STRLEN namelen;
-   PERL_ARGS_ASSERT_GV_AUTOLOAD4_SV;
+   PERL_ARGS_ASSERT_GV_AUTOLOAD_SV;
    namepv = SvPV(namesv, namelen);
    if (SvUTF8(namesv))
        flags |= SVf_UTF8;
-   return gv_autoload4_pvn(stash, namepv, namelen, method, flags);
+   return gv_autoload_pvn(stash, namepv, namelen, method, flags);
 }
 
 GV*
-Perl_gv_autoload4_pv(pTHX_ HV *stash, const char *namepv, I32 method, U32 flags)
+Perl_gv_autoload_pv(pTHX_ HV *stash, const char *namepv, I32 method, U32 flags)
 {
-   PERL_ARGS_ASSERT_GV_AUTOLOAD4_PV;
-   return gv_autoload4_pvn(stash, namepv, strlen(namepv), method, flags);
+   PERL_ARGS_ASSERT_GV_AUTOLOAD_PV;
+   return gv_autoload_pvn(stash, namepv, strlen(namepv), method, flags);
 }
 
 GV*
-Perl_gv_autoload4_pvn(pTHX_ HV *stash, const char *name, STRLEN len, I32 method, U32 flags)
+Perl_gv_autoload_pvn(pTHX_ HV *stash, const char *name, STRLEN len, I32 method, U32 flags)
 {
     dVAR;
     GV* gv;
@@ -1109,7 +1109,7 @@ Perl_gv_autoload4_pvn(pTHX_ HV *stash, const char *name, STRLEN len, I32 method,
     const char *packname = "";
     STRLEN packname_len = 0;
 
-    PERL_ARGS_ASSERT_GV_AUTOLOAD4_PVN;
+    PERL_ARGS_ASSERT_GV_AUTOLOAD_PVN;
 
     if (len == S_autolen && memEQ(name, S_autoload, S_autolen))
        return NULL;
diff --git a/gv.h b/gv.h
index 4514334..4ca5be1 100644 (file)
--- a/gv.h
+++ b/gv.h
@@ -240,7 +240,7 @@ Return the SV from the GV.
 #define gv_fetchmeth(stash,name,len,level) gv_fetchmeth_pvn(stash, name, len, level, 0)
 #define gv_fetchmeth_autoload(stash,name,len,level) gv_fetchmeth_pvn_autoload(stash, name, len, level, 0)
 #define gv_fetchmethod_flags(stash,name,flags) gv_fetchmethod_pv_flags(stash, name, flags)
-#define gv_autoload4(stash, name, len, method) gv_autoload4_pvn(stash, name, len, method, 0)
+#define gv_autoload4(stash, name, len, method) gv_autoload_pvn(stash, name, len, method, 0)
 
 #define gv_AVadd(gv) gv_add_by_type((gv), SVt_PVAV)
 #define gv_HVadd(gv) gv_add_by_type((gv), SVt_PVHV)
diff --git a/proto.h b/proto.h
index b4eed6b..451400f 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -1146,22 +1146,22 @@ PERL_CALLCONV GV*       Perl_gv_add_by_type(pTHX_ GV *gv, svtype type);
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_2); */
 
-PERL_CALLCONV GV*      Perl_gv_autoload4_pv(pTHX_ HV* stash, const char* namepv, I32 method, U32 flags)
+PERL_CALLCONV GV*      Perl_gv_autoload_pv(pTHX_ HV* stash, const char* namepv, I32 method, U32 flags)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_GV_AUTOLOAD4_PV       \
+#define PERL_ARGS_ASSERT_GV_AUTOLOAD_PV        \
        assert(namepv)
 
-PERL_CALLCONV GV*      Perl_gv_autoload4_pvn(pTHX_ HV* stash, const char* name, STRLEN len, I32 method, U32 flags)
+PERL_CALLCONV GV*      Perl_gv_autoload_pvn(pTHX_ HV* stash, const char* name, STRLEN len, I32 method, U32 flags)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_GV_AUTOLOAD4_PVN      \
+#define PERL_ARGS_ASSERT_GV_AUTOLOAD_PVN       \
        assert(name)
 
-PERL_CALLCONV GV*      Perl_gv_autoload4_sv(pTHX_ HV* stash, SV* namesv, I32 method, U32 flags)
+PERL_CALLCONV GV*      Perl_gv_autoload_sv(pTHX_ HV* stash, SV* namesv, I32 method, U32 flags)
                        __attribute__warn_unused_result__
                        __attribute__nonnull__(pTHX_2);
-#define PERL_ARGS_ASSERT_GV_AUTOLOAD4_SV       \
+#define PERL_ARGS_ASSERT_GV_AUTOLOAD_SV        \
        assert(namesv)
 
 PERL_CALLCONV void     Perl_gv_check(pTHX_ const HV* stash)