summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <leonerd@leonerd.org.uk>2021-08-22 21:51:13 +0100
committerPaul Evans <leonerd@leonerd.org.uk>2021-08-25 19:57:49 +0100
commit972c8f20eb76a50b81fd2f1d3228a8fff6282347 (patch)
treeb352ec05be0e36842876a7cef22df1380dcab4ae
parentecc6bf9b4b2a775770929c210e3aa9213dfb5d93 (diff)
downloadperl-972c8f20eb76a50b81fd2f1d3228a8fff6282347.tar.gz
Convert some existing uses of SvRV_set() to use the new sv_setrv* family of functions
-rw-r--r--mg.c6
-rw-r--r--pp.c9
-rw-r--r--sv.c5
-rw-r--r--universal.c3
4 files changed, 6 insertions, 17 deletions
diff --git a/mg.c b/mg.c
index 680097cf94..5aa5fe23c8 100644
--- a/mg.c
+++ b/mg.c
@@ -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
diff --git a/pp.c b/pp.c
index 10ba861529..d0df828363 100644
--- a/pp.c
+++ b/pp.c
@@ -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;
}
diff --git a/sv.c b/sv.c
index 37c27abe1d..286abc545e 100644
--- a/sv.c
+++ b/sv.c
@@ -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);