X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/b3ba608d9c8ad4dbd243bea977d4c9f3b6970329..6a86c6ad94ba9f2a00d21db1a38c46b8c011f213:/inline.h diff --git a/inline.h b/inline.h index b321cc2..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,18 +134,23 @@ S_sv_or_pv_pos_u2b(pTHX_ SV *sv, const char *pv, STRLEN pos, STRLEN *lenp) } #endif -/* ------------------------------- handy.h ------------------------------- */ +/* ------------------------------- utf8.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) +/* These exist only to replace the macros they formerly were so that their use + * can be deprecated */ + +PERL_STATIC_INLINE bool +S_isIDFIRST_lazy(pTHX_ const char* p) { - Perl_croak_nocontext("%s",PL_memory_wrap); + PERL_ARGS_ASSERT_ISIDFIRST_LAZY; + + return isIDFIRST_lazy_if(p,1); +} + +PERL_STATIC_INLINE bool +S_isALNUM_lazy(pTHX_ const char* p) +{ + PERL_ARGS_ASSERT_ISALNUM_LAZY; + + return isALNUM_lazy_if(p,1); } -#ifdef __clang__ -#pragma clang diagnostic pop -#endif