This is a live mirror of the Perl 5 development currently hosted at
sv.c: Change flags param on two fcns from I32 to U32
authorKarl Williamson <>
Sun, 28 Jun 2020 18:57:34 +0000 (12:57 -0600)
committerKarl Williamson <>
Sat, 5 Sep 2020 16:50:27 +0000 (10:50 -0600)
This is so the parameter types for sv_2pv_flags and sv_pvn_force_flags
are indistinguishable from similar functions, and can be passed as a
function pointer in a future commit.

It doesn't generally make sense to have a flags variable signed anyway.


index da036cc..c9127d0 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -1759,7 +1759,7 @@ Apd       |NV     |sv_2nv_flags   |NN SV *const sv|const I32 flags
 : Used in pp.c, pp_hot.c, sv.c
 pxd    |SV*    |sv_2num        |NN SV *const sv
 ApMb   |char*  |sv_2pv         |NN SV *sv|NULLOK STRLEN *lp
-Apd    |char*  |sv_2pv_flags   |NN SV *const sv|NULLOK STRLEN *const lp|const I32 flags
+Apd    |char*  |sv_2pv_flags   |NN SV *const sv|NULLOK STRLEN *const lp|const U32 flags
 ApdMb  |char*  |sv_2pvutf8     |NN SV *sv|NULLOK STRLEN *const lp
 Ap     |char*  |sv_2pvutf8_flags       |NN SV *sv|NULLOK STRLEN *const lp|const U32 flags
 ApdMb  |char*  |sv_2pvbyte     |NN SV *sv|NULLOK STRLEN *const lp
@@ -3291,7 +3291,7 @@ Apd       |void   |sv_catpv_flags |NN SV *dstr|NN const char *sstr \
 Apd    |void   |sv_catsv_flags |NN SV *const dsv|NULLOK SV *const ssv|const I32 flags
 Amd    |STRLEN |sv_utf8_upgrade_flags|NN SV *const sv|const I32 flags
 Adp    |STRLEN |sv_utf8_upgrade_flags_grow|NN SV *const sv|const I32 flags|STRLEN extra
-Apd    |char*  |sv_pvn_force_flags|NN SV *const sv|NULLOK STRLEN *const lp|const I32 flags
+Apd    |char*  |sv_pvn_force_flags|NN SV *const sv|NULLOK STRLEN *const lp|const U32 flags
 AdpMb  |void   |sv_copypv      |NN SV *const dsv|NN SV *const ssv
 Amd    |void   |sv_copypv_nomg |NN SV *const dsv|NN SV *const ssv
 Apd    |void   |sv_copypv_flags        |NN SV *const dsv|NN SV *const ssv|const I32 flags
diff --git a/proto.h b/proto.h
index 24a4399..c4490fc 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -3248,7 +3248,7 @@ PERL_CALLCONV char*       Perl_sv_2pv(pTHX_ SV *sv, STRLEN *lp);
 #define PERL_ARGS_ASSERT_SV_2PV        \
-PERL_CALLCONV char*    Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags);
+PERL_CALLCONV char*    Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const U32 flags);
 #ifndef NO_MATHOMS
@@ -3596,7 +3596,7 @@ PERL_CALLCONV char*       Perl_sv_pvn_force(pTHX_ SV* sv, STRLEN* lp);
-PERL_CALLCONV char*    Perl_sv_pvn_force_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags);
+PERL_CALLCONV char*    Perl_sv_pvn_force_flags(pTHX_ SV *const sv, STRLEN *const lp, const U32 flags);
 #ifndef NO_MATHOMS
diff --git a/sv.c b/sv.c
index d123322..9314001 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -2989,7 +2989,7 @@ C<sv_2pv()> and C<sv_2pv_nomg> usually end up here too.
 char *
-Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags)
+Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const U32 flags)
     char *s;
@@ -10101,7 +10101,7 @@ C<L</SvPV_force>> and C<L</SvPV_force_nomg>>.
 char *
-Perl_sv_pvn_force_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags)
+Perl_sv_pvn_force_flags(pTHX_ SV *const sv, STRLEN *const lp, const U32 flags)