From 0fe84f7c4203febe7385a57fe43af2ee032318cf Mon Sep 17 00:00:00 2001 From: Father Chrysostomos Date: Sat, 1 Oct 2011 22:13:26 -0700 Subject: [PATCH] Remove 4 from new gv_autoload4_(sv|pvn?) functions MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 | 6 +++--- embed.h | 6 +++--- ext/XS-APItest/APItest.xs | 8 ++++---- ext/XS-APItest/t/gv_autoload4.t | 24 ++++++++++++------------ gv.c | 16 ++++++++-------- gv.h | 2 +- proto.h | 12 ++++++------ 7 files changed, 37 insertions(+), 37 deletions(-) diff --git a/embed.fnc b/embed.fnc index dffaaba..0fe0d3d 100644 --- 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 --- a/embed.h +++ b/embed.h @@ -161,9 +161,9 @@ #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) diff --git a/ext/XS-APItest/APItest.xs b/ext/XS-APItest/APItest.xs index d0fa057..618bd32 100644 --- a/ext/XS-APItest/APItest.xs +++ b/ext/XS-APItest/APItest.xs @@ -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); diff --git a/ext/XS-APItest/t/gv_autoload4.t b/ext/XS-APItest/t/gv_autoload4.t index beec17e..dc4e227 100644 --- a/ext/XS-APItest/t/gv_autoload4.t +++ b/ext/XS-APItest/t/gv_autoload4.t @@ -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 --- 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 --- 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 --- 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) -- 2.7.4