summaryrefslogtreecommitdiff
path: root/pp_hot.c
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2007-12-26 18:12:32 +0000
committerNicholas Clark <nick@ccl4.org>2007-12-26 18:12:32 +0000
commit43230e26bd52e1dcdb541bb4a927c941262b74ed (patch)
tree208c0810033bd66cd36c0a5902f52f146d6c02b1 /pp_hot.c
parentdd48e7ab8eb6069673c480ccd5a1f28dca88269b (diff)
downloadperl-43230e26bd52e1dcdb541bb4a927c941262b74ed.tar.gz
Take code that occurs in three places to take a scalar and ready it to
hold a reference, and convert it to a macro define prepare_SV_for_RV(). p4raw-id: //depot/perl@32737
Diffstat (limited to 'pp_hot.c')
-rw-r--r--pp_hot.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/pp_hot.c b/pp_hot.c
index 276010c4db..764d5be0ca 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -2940,13 +2940,7 @@ Perl_vivify_ref(pTHX_ SV *sv, U32 to_what)
if (!SvOK(sv)) {
if (SvREADONLY(sv))
Perl_croak(aTHX_ PL_no_modify);
- if (SvTYPE(sv) < SVt_PV && SvTYPE(sv) != SVt_IV)
- sv_upgrade(sv, SVt_IV);
- else if (SvTYPE(sv) >= SVt_PV) {
- SvPV_free(sv);
- SvLEN_set(sv, 0);
- SvCUR_set(sv, 0);
- }
+ prepare_SV_for_RV(sv);
switch (to_what) {
case OPpDEREF_SV:
SvRV_set(sv, newSV(0));