diff options
author | Paul "LeoNerd" Evans <leonerd@leonerd.org.uk> | 2021-08-22 21:51:13 +0100 |
---|---|---|
committer | Paul Evans <leonerd@leonerd.org.uk> | 2021-08-25 19:57:49 +0100 |
commit | 972c8f20eb76a50b81fd2f1d3228a8fff6282347 (patch) | |
tree | b352ec05be0e36842876a7cef22df1380dcab4ae | |
parent | ecc6bf9b4b2a775770929c210e3aa9213dfb5d93 (diff) | |
download | perl-972c8f20eb76a50b81fd2f1d3228a8fff6282347.tar.gz |
Convert some existing uses of SvRV_set() to use the new sv_setrv* family of functions
-rw-r--r-- | mg.c | 6 | ||||
-rw-r--r-- | pp.c | 9 | ||||
-rw-r--r-- | sv.c | 5 | ||||
-rw-r--r-- | universal.c | 3 |
4 files changed, 6 insertions, 17 deletions
@@ -1044,11 +1044,7 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg) if (strEQ(remaining, "AST_FH")) { if (PL_last_in_gv && (SV*)PL_last_in_gv != &PL_sv_undef) { assert(isGV_with_GP(PL_last_in_gv)); - SV_CHECK_THINKFIRST_COW_DROP(sv); - prepare_SV_for_RV(sv); - SvOK_off(sv); - SvRV_set(sv, SvREFCNT_inc_simple_NN(PL_last_in_gv)); - SvROK_on(sv); + sv_setrv_inc(sv, MUTABLE_SV(PL_last_in_gv)); sv_rvweaken(sv); } else @@ -140,10 +140,7 @@ S_rv2gv(pTHX_ SV *sv, const bool vivify_sv, const bool strict, else { gv_init_pv(gv, stash, "__ANONIO__", 0); } - prepare_SV_for_RV(sv); - SvRV_set(sv, MUTABLE_SV(gv)); - SvROK_on(sv); - SvSETMAGIC(sv); + sv_setrv_noinc_mg(sv, MUTABLE_SV(gv)); goto wasref; } if (PL_op->op_flags & OPf_REF || strict) { @@ -472,9 +469,7 @@ S_refto(pTHX_ SV *sv) SvREFCNT_inc_void_NN(sv); } rv = sv_newmortal(); - sv_upgrade(rv, SVt_IV); - SvRV_set(rv, sv); - SvROK_on(rv); + sv_setrv_noinc(rv, sv); return rv; } @@ -9804,11 +9804,10 @@ Perl_newRV_noinc(pTHX_ SV *const tmpRef) SET_SVANY_FOR_BODYLESS_IV(sv); SvFLAGS(sv) |= SVt_IV; - SvROK_on(sv); - SvIV_set(sv, 0); SvTEMP_off(tmpRef); - SvRV_set(sv, tmpRef); + + sv_setrv_noinc(sv, tmpRef); return sv; } diff --git a/universal.c b/universal.c index cce2a87d1c..8dd693aa10 100644 --- a/universal.c +++ b/universal.c @@ -1097,10 +1097,9 @@ XS(XS_NamedCapture_tie_it) SV *rv = newSV_type(SVt_IV); const char *gv_name = GvNAME(gv); - SvRV_set(rv, newSVuv( + sv_setrv_noinc(rv, newSVuv( strEQ(gv_name, "-") || strEQ(gv_name, "\003APTURE_ALL") ? RXapif_ALL : RXapif_ONE)); - SvROK_on(rv); sv_bless(rv, GvSTASH(CvGV(cv))); sv_unmagic((SV *)hv, PERL_MAGIC_tied); |