X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/a8a2ceaa337ed7cb30711de145f484033c43b07d..1cb48e53e0cc9d610c1829b47f3ef0babdb62477:/inline.h diff --git a/inline.h b/inline.h index 85bdc74..953bb33 100644 --- a/inline.h +++ b/inline.h @@ -12,6 +12,17 @@ * Each section names the header file that the functions "belong" to. */ +/* ------------------------------- av.h ------------------------------- */ + +PERL_STATIC_INLINE I32 +S_av_top_index(pTHX_ AV *av) +{ + PERL_ARGS_ASSERT_AV_TOP_INDEX; + assert(SvTYPE(av) == SVt_PVAV); + + return AvFILL(av); +} + /* ------------------------------- cv.h ------------------------------- */ PERL_STATIC_INLINE I32 * @@ -35,7 +46,7 @@ S_ReANY(const REGEXP * const re) PERL_STATIC_INLINE SV * S_SvREFCNT_inc(SV *sv) { - if (sv) + if (LIKELY(sv != NULL)) SvREFCNT(sv)++; return sv; } @@ -48,13 +59,13 @@ S_SvREFCNT_inc_NN(SV *sv) PERL_STATIC_INLINE void S_SvREFCNT_inc_void(SV *sv) { - if (sv) + if (LIKELY(sv != NULL)) SvREFCNT(sv)++; } PERL_STATIC_INLINE void S_SvREFCNT_dec(pTHX_ SV *sv) { - if (sv) { + if (LIKELY(sv != NULL)) { U32 rc = SvREFCNT(sv); if (rc > 1) SvREFCNT(sv) = rc - 1; @@ -123,22 +134,6 @@ S_sv_or_pv_pos_u2b(pTHX_ SV *sv, const char *pv, STRLEN pos, STRLEN *lenp) } #endif -/* ------------------------------- handy.h ------------------------------- */ - -/* saves machine code for a common noreturn idiom typically used in Newx*() */ -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wunused-function" -#endif -static void -S_croak_memory_wrap(void) -{ - Perl_croak_nocontext("%s",PL_memory_wrap); -} -#ifdef __clang__ -#pragma clang diagnostic pop -#endif - /* ------------------------------- utf8.h ------------------------------- */ /* These exist only to replace the macros they formerly were so that their use