Skip to content

Commit 97d0d86

Browse files
committed
sv.c: make PUSH_EXTEND_MORTAL__SV_C an inline function
This macro could easily be a function, so why not make it one?
1 parent d1bb394 commit 97d0d86

File tree

1 file changed

+16
-15
lines changed

1 file changed

+16
-15
lines changed

sv.c

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9610,17 +9610,18 @@ Perl_sv_dec_nomg(pTHX_ SV *const sv)
96109610
sv_setnv(sv,Atof(SvPVX_const(sv)) - 1.0); /* punt */
96119611
}
96129612

9613-
/* this define is used to eliminate a chunk of duplicated but shared logic
9614-
* it has the suffix __SV_C to signal that it isnt API, and isnt meant to be
9615-
* used anywhere but here - yves
9613+
/* This internal function is used to eliminate a chunk of duplicated but shared
9614+
* logic.
96169615
*/
9617-
#define PUSH_EXTEND_MORTAL__SV_C(AnSv) \
9618-
STMT_START { \
9619-
SSize_t ix = ++PL_tmps_ix; \
9620-
if (UNLIKELY(ix >= PL_tmps_max)) \
9621-
ix = tmps_grow_p(ix); \
9622-
PL_tmps_stack[ix] = (AnSv); \
9623-
} STMT_END
9616+
PERL_STATIC_INLINE void
9617+
S_push_extend_mortal(pTHX_ SV *const sv)
9618+
{
9619+
SSize_t ix = ++PL_tmps_ix;
9620+
if (UNLIKELY(ix >= PL_tmps_max))
9621+
ix = tmps_grow_p(ix);
9622+
PL_tmps_stack[ix] = sv;
9623+
}
9624+
#define push_extend_mortal(sv) S_push_extend_mortal(aTHX_ sv)
96249625

96259626
/*
96269627
=for apidoc sv_mortalcopy
@@ -9653,7 +9654,7 @@ Perl_sv_mortalcopy_flags(pTHX_ SV *const oldstr, U32 flags)
96539654
SvGETMAGIC(oldstr); /* before new_SV, in case it dies */
96549655
new_SV(sv);
96559656
sv_setsv_flags(sv,oldstr,flags & ~SV_GMAGIC);
9656-
PUSH_EXTEND_MORTAL__SV_C(sv);
9657+
push_extend_mortal(sv);
96579658
SvTEMP_on(sv);
96589659
return sv;
96599660
}
@@ -9676,7 +9677,7 @@ Perl_sv_newmortal(pTHX)
96769677

96779678
new_SV(sv);
96789679
SvFLAGS(sv) = SVs_TEMP;
9679-
PUSH_EXTEND_MORTAL__SV_C(sv);
9680+
push_extend_mortal(sv);
96809681
return sv;
96819682
}
96829683

@@ -9726,7 +9727,7 @@ Perl_newSVpvn_flags(pTHX_ const char *const s, const STRLEN len, const U32 flags
97269727
SvFLAGS(sv) |= flags;
97279728

97289729
if(flags & SVs_TEMP){
9729-
PUSH_EXTEND_MORTAL__SV_C(sv);
9730+
push_extend_mortal(sv);
97309731
}
97319732

97329733
return sv;
@@ -9752,7 +9753,7 @@ Perl_sv_2mortal(pTHX_ SV *const sv)
97529753
if (SvIMMORTAL(sv))
97539754
return sv;
97549755
SvTEMP_on(sv); /* optimize for RISC, SvIMMORTAL() contains SvREADONLY() */
9755-
PUSH_EXTEND_MORTAL__SV_C(sv);;
9756+
push_extend_mortal(sv);
97569757
return sv;
97579758
}
97589759

@@ -9825,7 +9826,7 @@ Perl_newSVhek_mortal(pTHX_ const HEK *const hek)
98259826
assert(sv);
98269827
assert(!SvIMMORTAL(sv));
98279828

9828-
PUSH_EXTEND_MORTAL__SV_C(sv);
9829+
push_extend_mortal(sv);
98299830
SvTEMP_on(sv);
98309831
return sv;
98319832
}

0 commit comments

Comments
 (0)