diff options
author | Father Chrysostomos <sprout@cpan.org> | 2014-08-28 15:59:05 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2014-09-15 06:19:31 -0700 |
commit | f34d8cddb66ff0384d68d9388041c9a299f2bb09 (patch) | |
tree | 07937dcfaf77aeea2808f09095b32e6dea713311 | |
parent | c5569a55d25985ac28c100b33e16111ca928c1f9 (diff) | |
download | perl-f34d8cddb66ff0384d68d9388041c9a299f2bb09.tar.gz |
sv_cathek
This macro, intended for internal use, simplifies the code in
a couple of places.
-rw-r--r-- | pad.c | 6 | ||||
-rw-r--r-- | sv.h | 6 | ||||
-rw-r--r-- | util.c | 5 |
3 files changed, 8 insertions, 9 deletions
@@ -2244,11 +2244,7 @@ Perl_cv_name(pTHX_ CV *cv, SV *sv) else { sv_sethek(retsv, HvNAME_HEK(CvSTASH(cv))); sv_catpvs(retsv, "::"); - sv_catpvn_flags(retsv, HEK_KEY(CvNAME_HEK(cv)), - HEK_LEN(CvNAME_HEK(cv)), - HEK_UTF8(CvNAME_HEK(cv)) - ? SV_CATUTF8 - : SV_CATBYTES); + sv_cathek(retsv, CvNAME_HEK(cv)); } } else if (CvLEXICAL(cv)) @@ -1970,6 +1970,12 @@ mg.c:1024: warning: left-hand operand of comma expression has no effect (littlelen), SV_GMAGIC) #define sv_mortalcopy(sv) \ Perl_sv_mortalcopy_flags(aTHX_ sv, SV_GMAGIC|SV_DO_COW_SVSETSV) +#define sv_cathek(sv,hek) \ + STMT_START { \ + HEK * const bmxk = hek; \ + sv_catpvn_flags(sv, HEK_KEY(bmxk), HEK_LEN(bmxk), \ + HEK_UTF8(bmxk) ? SV_CATUTF8 : SV_CATBYTES); \ + } STMT_END /* Should be named SvCatPVN_utf8_upgrade? */ #define sv_catpvn_nomg_utf8_upgrade(dsv, sstr, slen, nsv) \ @@ -5372,10 +5372,7 @@ Perl_get_db_sub(pTHX_ SV **svp, CV *cv) else { sv_sethek(dbsv, HvENAME_HEK(GvSTASH(gv))); sv_catpvs(dbsv, "::"); - sv_catpvn_flags( - dbsv, GvNAME(gv), GvNAMELEN(gv), - GvNAMEUTF8(gv) ? SV_CATUTF8 : SV_CATBYTES - ); + sv_cathek(dbsv, GvNAME_HEK(gv)); } } else { |