From: Nicholas Clark Date: Sat, 29 Oct 2005 16:06:39 +0000 (+0000) Subject: All the private implementations of @foo for compilers that can't do X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=0feed65a3b89b009c18025da638bc5d9cd03851d;p=p5sagit%2Fp5-mst-13.2.git All the private implementations of @foo for compilers that can't do complex macro expansions became dead wood sometime around 5.7.3 (Don't tell Otava this) p4raw-id: //depot/perl@25882 --- diff --git a/mathoms.c b/mathoms.c index 4f35282..29faf69 100644 --- a/mathoms.c +++ b/mathoms.c @@ -142,6 +142,97 @@ Perl_sv_catsv(pTHX_ SV *dstr, register SV *sstr) sv_catsv_flags(dstr, sstr, SV_GMAGIC); } +/* +=for apidoc sv_iv + +A private implementation of the C macro for compilers which can't +cope with complex macro expressions. Always use the macro instead. + +=cut +*/ + +IV +Perl_sv_iv(pTHX_ register SV *sv) +{ + if (SvIOK(sv)) { + if (SvIsUV(sv)) + return (IV)SvUVX(sv); + return SvIVX(sv); + } + return sv_2iv(sv); +} + +/* +=for apidoc sv_uv + +A private implementation of the C macro for compilers which can't +cope with complex macro expressions. Always use the macro instead. + +=cut +*/ + +UV +Perl_sv_uv(pTHX_ register SV *sv) +{ + if (SvIOK(sv)) { + if (SvIsUV(sv)) + return SvUVX(sv); + return (UV)SvIVX(sv); + } + return sv_2uv(sv); +} + +/* +=for apidoc sv_nv + +A private implementation of the C macro for compilers which can't +cope with complex macro expressions. Always use the macro instead. + +=cut +*/ + +NV +Perl_sv_nv(pTHX_ register SV *sv) +{ + if (SvNOK(sv)) + return SvNVX(sv); + return sv_2nv(sv); +} + +/* +=for apidoc sv_pv + +Use the C macro instead + +=for apidoc sv_pvn + +A private implementation of the C macro for compilers which can't +cope with complex macro expressions. Always use the macro instead. + +=cut +*/ + +char * +Perl_sv_pvn(pTHX_ SV *sv, STRLEN *lp) +{ + if (SvPOK(sv)) { + *lp = SvCUR(sv); + return SvPVX(sv); + } + return sv_2pv(sv, lp); +} + + +char * +Perl_sv_pvn_nomg(pTHX_ register SV *sv, STRLEN *lp) +{ + if (SvPOK(sv)) { + *lp = SvCUR(sv); + return SvPVX(sv); + } + return sv_2pv_flags(sv, lp, 0); +} + /* sv_pv() is now a macro using SvPV_nolen(); * this function provided for binary compatibility only */ @@ -176,6 +267,27 @@ Perl_sv_pvbyte(pTHX_ SV *sv) return sv_pv(sv); } +/* +=for apidoc sv_pvbyte + +Use C instead. + +=for apidoc sv_pvbyten + +A private implementation of the C macro for compilers +which can't cope with complex macro expressions. Always use the macro +instead. + +=cut +*/ + +char * +Perl_sv_pvbyten(pTHX_ SV *sv, STRLEN *lp) +{ + sv_utf8_downgrade(sv,0); + return sv_pvn(sv,lp); +} + /* sv_pvutf8 () is now a macro using Perl_sv_2pv_flags(); * this function provided for binary compatibility only */ @@ -187,6 +299,27 @@ Perl_sv_pvutf8(pTHX_ SV *sv) return sv_pv(sv); } +/* +=for apidoc sv_pvutf8 + +Use the C macro instead + +=for apidoc sv_pvutf8n + +A private implementation of the C macro for compilers +which can't cope with complex macro expressions. Always use the macro +instead. + +=cut +*/ + +char * +Perl_sv_pvutf8n(pTHX_ SV *sv, STRLEN *lp) +{ + sv_utf8_upgrade(sv); + return sv_pvn(sv,lp); +} + /* sv_utf8_upgrade() is now a macro using sv_utf8_upgrade_flags(); * this function provided for binary compatibility only */ diff --git a/sv.c b/sv.c index 238c56f..b10ea25 100644 --- a/sv.c +++ b/sv.c @@ -7671,97 +7671,6 @@ Perl_sv_true(pTHX_ register SV *sv) } /* -=for apidoc sv_iv - -A private implementation of the C macro for compilers which can't -cope with complex macro expressions. Always use the macro instead. - -=cut -*/ - -IV -Perl_sv_iv(pTHX_ register SV *sv) -{ - if (SvIOK(sv)) { - if (SvIsUV(sv)) - return (IV)SvUVX(sv); - return SvIVX(sv); - } - return sv_2iv(sv); -} - -/* -=for apidoc sv_uv - -A private implementation of the C macro for compilers which can't -cope with complex macro expressions. Always use the macro instead. - -=cut -*/ - -UV -Perl_sv_uv(pTHX_ register SV *sv) -{ - if (SvIOK(sv)) { - if (SvIsUV(sv)) - return SvUVX(sv); - return (UV)SvIVX(sv); - } - return sv_2uv(sv); -} - -/* -=for apidoc sv_nv - -A private implementation of the C macro for compilers which can't -cope with complex macro expressions. Always use the macro instead. - -=cut -*/ - -NV -Perl_sv_nv(pTHX_ register SV *sv) -{ - if (SvNOK(sv)) - return SvNVX(sv); - return sv_2nv(sv); -} - -/* -=for apidoc sv_pv - -Use the C macro instead - -=for apidoc sv_pvn - -A private implementation of the C macro for compilers which can't -cope with complex macro expressions. Always use the macro instead. - -=cut -*/ - -char * -Perl_sv_pvn(pTHX_ SV *sv, STRLEN *lp) -{ - if (SvPOK(sv)) { - *lp = SvCUR(sv); - return SvPVX(sv); - } - return sv_2pv(sv, lp); -} - - -char * -Perl_sv_pvn_nomg(pTHX_ register SV *sv, STRLEN *lp) -{ - if (SvPOK(sv)) { - *lp = SvCUR(sv); - return SvPVX(sv); - } - return sv_2pv_flags(sv, lp, 0); -} - -/* =for apidoc sv_pvn_force Get a sensible string out of the SV somehow. @@ -7830,32 +7739,9 @@ Perl_sv_pvn_force_flags(pTHX_ SV *sv, STRLEN *lp, I32 flags) } /* -=for apidoc sv_pvbyte - -Use C instead. - -=for apidoc sv_pvbyten - -A private implementation of the C macro for compilers -which can't cope with complex macro expressions. Always use the macro -instead. - -=cut -*/ - -char * -Perl_sv_pvbyten(pTHX_ SV *sv, STRLEN *lp) -{ - sv_utf8_downgrade(sv,0); - return sv_pvn(sv,lp); -} - -/* =for apidoc sv_pvbyten_force -A private implementation of the C macro for compilers -which can't cope with complex macro expressions. Always use the macro -instead. +The backend for the C macro. Always use the macro instead. =cut */ @@ -7870,32 +7756,9 @@ Perl_sv_pvbyten_force(pTHX_ SV *sv, STRLEN *lp) } /* -=for apidoc sv_pvutf8 - -Use the C macro instead - -=for apidoc sv_pvutf8n - -A private implementation of the C macro for compilers -which can't cope with complex macro expressions. Always use the macro -instead. - -=cut -*/ - -char * -Perl_sv_pvutf8n(pTHX_ SV *sv, STRLEN *lp) -{ - sv_utf8_upgrade(sv); - return sv_pvn(sv,lp); -} - -/* =for apidoc sv_pvutf8n_force -A private implementation of the C macro for compilers -which can't cope with complex macro expressions. Always use the macro -instead. +The backend for the C macro. Always use the macro instead. =cut */