Skip to content

Commit 7bce6da

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 9f37e11 commit 7bce6da

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
@@ -9598,17 +9598,18 @@ Perl_sv_dec_nomg(pTHX_ SV *const sv)
95989598
sv_setnv(sv,Atof(SvPVX_const(sv)) - 1.0); /* punt */
95999599
}
96009600

9601-
/* this define is used to eliminate a chunk of duplicated but shared logic
9602-
* it has the suffix __SV_C to signal that it isnt API, and isnt meant to be
9603-
* used anywhere but here - yves
9601+
/* This internal function is used to eliminate a chunk of duplicated but shared
9602+
* logic.
96049603
*/
9605-
#define PUSH_EXTEND_MORTAL__SV_C(AnSv) \
9606-
STMT_START { \
9607-
SSize_t ix = ++PL_tmps_ix; \
9608-
if (UNLIKELY(ix >= PL_tmps_max)) \
9609-
ix = tmps_grow_p(ix); \
9610-
PL_tmps_stack[ix] = (AnSv); \
9611-
} STMT_END
9604+
PERL_STATIC_INLINE void
9605+
S_push_extend_mortal(pTHX_ SV *const sv)
9606+
{
9607+
SSize_t ix = ++PL_tmps_ix;
9608+
if (UNLIKELY(ix >= PL_tmps_max))
9609+
ix = tmps_grow_p(ix);
9610+
PL_tmps_stack[ix] = sv;
9611+
}
9612+
#define push_extend_mortal(sv) S_push_extend_mortal(aTHX_ sv)
96129613

96139614
/*
96149615
=for apidoc sv_mortalcopy
@@ -9641,7 +9642,7 @@ Perl_sv_mortalcopy_flags(pTHX_ SV *const oldstr, U32 flags)
96419642
SvGETMAGIC(oldstr); /* before new_SV, in case it dies */
96429643
new_SV(sv);
96439644
sv_setsv_flags(sv,oldstr,flags & ~SV_GMAGIC);
9644-
PUSH_EXTEND_MORTAL__SV_C(sv);
9645+
push_extend_mortal(sv);
96459646
SvTEMP_on(sv);
96469647
return sv;
96479648
}
@@ -9664,7 +9665,7 @@ Perl_sv_newmortal(pTHX)
96649665

96659666
new_SV(sv);
96669667
SvFLAGS(sv) = SVs_TEMP;
9667-
PUSH_EXTEND_MORTAL__SV_C(sv);
9668+
push_extend_mortal(sv);
96689669
return sv;
96699670
}
96709671

@@ -9714,7 +9715,7 @@ Perl_newSVpvn_flags(pTHX_ const char *const s, const STRLEN len, const U32 flags
97149715
SvFLAGS(sv) |= flags;
97159716

97169717
if(flags & SVs_TEMP){
9717-
PUSH_EXTEND_MORTAL__SV_C(sv);
9718+
push_extend_mortal(sv);
97189719
}
97199720

97209721
return sv;
@@ -9739,7 +9740,7 @@ Perl_sv_2mortal(pTHX_ SV *const sv)
97399740
return sv;
97409741
if (SvIMMORTAL(sv))
97419742
return sv;
9742-
PUSH_EXTEND_MORTAL__SV_C(sv);
9743+
push_extend_mortal(sv);
97439744
SvTEMP_on(sv);
97449745
return sv;
97459746
}
@@ -9813,7 +9814,7 @@ Perl_newSVhek_mortal(pTHX_ const HEK *const hek)
98139814
assert(sv);
98149815
assert(!SvIMMORTAL(sv));
98159816

9816-
PUSH_EXTEND_MORTAL__SV_C(sv);
9817+
push_extend_mortal(sv);
98179818
SvTEMP_on(sv);
98189819
return sv;
98199820
}

0 commit comments

Comments
 (0)