Skip to content

Commit 4c4fde3

Browse files
committed
bulk88 comments
1 parent bf95ea0 commit 4c4fde3

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

sv.c

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4634,7 +4634,7 @@ Perl_sv_setsv_flags(pTHX_ SV *dsv, SV* ssv, const I32 flags)
46344634

46354635
(void)SvOK_off(dsv);
46364636
SvFLAGS(dsv) |= sflags &
4637-
(SVf_POK|SVp_POK|SVf_IOK|SVp_IOK|SVf_NOK|SVp_NOK|SVf_UTF8);
4637+
(SVf_POK|SVp_POK|SVf_IOK|SVp_IOK|SVf_IVisUV|SVf_NOK|SVp_NOK|SVf_UTF8);
46384638

46394639
if ( !(flags & SV_NOSTEAL) && S_SvPV_can_swipe_buf(ssv, sflags, cur, len) )
46404640
{ /* Passes the swipe test. */
@@ -4733,8 +4733,6 @@ Perl_sv_setsv_flags(pTHX_ SV *dsv, SV* ssv, const I32 flags)
47334733
}
47344734
if (sflags & SVp_IOK) {
47354735
SvIV_set(dsv, SvIVX(ssv));
4736-
if (sflags & SVf_IVisUV)
4737-
SvIsUV_on(dsv);
47384736
if ((sflags & SVf_IOK) && !(sflags & SVf_POK)) {
47394737
/* Source was SVf_IOK|SVp_IOK|SVp_POK but not SVf_POK, meaning
47404738
a value set as an integer and later stringified. So confirm
@@ -4800,9 +4798,10 @@ S_sv_freshcopy_POK(pTHX_ SV* dsv, SV* ssv, const I32 flags)
48004798

48014799
if (!(flags & SV_NOSTEAL) && S_SvPV_can_swipe_buf(ssv, sflags, cur, len) ) {
48024800
/* Passes the swipe test. */
4801+
char * buf = SvPVX_mutable(ssv);
48034802
SvLEN_set(dsv, len);
48044803
SvCUR_set(dsv, cur);
4805-
SvPV_set(dsv, SvPVX_mutable(ssv));
4804+
SvPV_set(dsv, buf);
48064805

48074806
assert(!SvOOK(ssv)); /* According to S_SvPV_can_swipe_buf() */
48084807
/* (void)SvOK_off(ssv); but without the superfluous SvOOK_off(ssv)) */
@@ -5131,12 +5130,12 @@ Perl_sv_freshcopy_flags(pTHX_ SV *const old, I32 flags)
51315130
break;
51325131
case SVt_IV|SVf_ROK: /* [12%] */
51335132
assert(SvANY(dsv));
5133+
SvFLAGS(dsv) = SVt_IV|SVf_ROK;
51345134
#if defined (DEBUGGING) || defined (PERL_DEBUG_COW)
5135-
dsv->sv_u.svu_rv = SvREFCNT_inc(SvRV(old));
5135+
dsv->sv_u.svu_rv = SvREFCNT_inc_NN(SvRV(old));
51365136
#else
5137-
dsv->sv_u.svu_rv = SvREFCNT_inc( old->sv_u.svu_rv );
5137+
dsv->sv_u.svu_rv = SvREFCNT_inc_NN( old->sv_u.svu_rv );
51385138
#endif
5139-
SvFLAGS(dsv) = SVt_IV|SVf_ROK;
51405139
break;
51415140
case SVt_PV|SVf_POK: /* [32%] */
51425141
SvANY(dsv) = new_XPV();

0 commit comments

Comments
 (0)