X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/e5fcdda930c7665d8888f2b1a8729f2f02c4eb33..230834321e308444d408bdbf755d181b67e82d4c:/proto.h diff --git a/proto.h b/proto.h index 7a60c70..2351b32 100644 --- a/proto.h +++ b/proto.h @@ -32,10 +32,13 @@ PERL_CALLCONV void Perl_Slab_Free(pTHX_ void *op) #define PERL_ARGS_ASSERT_SLAB_FREE \ assert(op) -PERL_CALLCONV bool Perl__is_utf8__perl_idstart(pTHX_ const U8 *p) +PERL_CALLCONV bool Perl__is_uni_perl_idstart(pTHX_ UV c) + __attribute__warn_unused_result__; + +PERL_CALLCONV bool Perl__is_utf8_perl_idstart(pTHX_ const U8 *p) __attribute__warn_unused_result__ __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT__IS_UTF8__PERL_IDSTART \ +#define PERL_ARGS_ASSERT__IS_UTF8_PERL_IDSTART \ assert(p) PERL_CALLCONV UV Perl__to_uni_fold_flags(pTHX_ UV c, U8 *p, STRLEN *lenp, const U8 flags) @@ -1778,18 +1781,6 @@ PERL_CALLCONV bool Perl_is_uni_xdigit_lc(pTHX_ UV c) __attribute__warn_unused_result__ __attribute__pure__; -PERL_CALLCONV bool Perl_is_utf8_X_extend(pTHX_ const U8 *p) - __attribute__warn_unused_result__ - __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT_IS_UTF8_X_EXTEND \ - assert(p) - -PERL_CALLCONV bool Perl_is_utf8_X_regular_begin(pTHX_ const U8 *p) - __attribute__warn_unused_result__ - __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT_IS_UTF8_X_REGULAR_BEGIN \ - assert(p) - PERL_CALLCONV bool Perl_is_utf8_alnum(pTHX_ const U8 *p) __attribute__warn_unused_result__ __attribute__nonnull__(pTHX_1); @@ -3947,7 +3938,7 @@ PERL_CALLCONV void Perl_sv_force_normal_flags(pTHX_ SV *const sv, const U32 flag assert(sv) PERL_CALLCONV void Perl_sv_free(pTHX_ SV *const sv); -PERL_CALLCONV void Perl_sv_free2(pTHX_ SV *const sv) +PERL_CALLCONV void Perl_sv_free2(pTHX_ SV *const sv, const U32 refcnt) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_SV_FREE2 \ assert(sv) @@ -4855,15 +4846,6 @@ PERL_CALLCONV void Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* idop assert(idop) #endif -#if !(defined(USE_ITHREADS)) -# if defined(PERL_IN_OP_C) -STATIC void S_forget_pmop(pTHX_ PMOP *const o) - __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT_FORGET_PMOP \ - assert(o) - -# endif -#endif #if !defined(HAS_BZERO) && !defined(HAS_MEMSET) PERL_CALLCONV char* Perl_my_bzero(char* loc, I32 len) __attribute__nonnull__(1); @@ -5247,6 +5229,13 @@ PERL_CALLCONV short Perl_my_swap(pTHX_ short s) #if defined(NO_MATHOMS) /* PERL_CALLCONV void Perl_sv_nounlocking(pTHX_ SV *sv); */ #endif +#if defined(PERL_ANY_COW) +PERL_CALLCONV SV* Perl_sv_setsv_cow(pTHX_ SV* dstr, SV* sstr) + __attribute__nonnull__(pTHX_2); +#define PERL_ARGS_ASSERT_SV_SETSV_COW \ + assert(sstr) + +#endif #if defined(PERL_CORE) PERL_CALLCONV void Perl_opslab_force_free(pTHX_ OPSLAB *slab) __attribute__nonnull__(pTHX_1); @@ -5515,36 +5504,6 @@ STATIC I32 S_do_trans_simple_utf8(pTHX_ SV * const sv) assert(sv) #endif -#if defined(PERL_IN_DQUOTE_STATIC_C) -STATIC char S_grok_bslash_c(pTHX_ const char source, const bool utf8, const bool output_warning) - __attribute__warn_unused_result__; - -STATIC bool S_grok_bslash_o(pTHX_ const char* s, UV* uv, STRLEN* len, const char** error_msg, const bool output_warning) - __attribute__warn_unused_result__ - __attribute__nonnull__(pTHX_1) - __attribute__nonnull__(pTHX_2) - __attribute__nonnull__(pTHX_3) - __attribute__nonnull__(pTHX_4); -#define PERL_ARGS_ASSERT_GROK_BSLASH_O \ - assert(s); assert(uv); assert(len); assert(error_msg) - -PERL_STATIC_INLINE bool S_grok_bslash_x(pTHX_ const char* s, UV* uv, STRLEN* len, const char** error_msg, const bool output_warning) - __attribute__warn_unused_result__ - __attribute__nonnull__(pTHX_1) - __attribute__nonnull__(pTHX_2) - __attribute__nonnull__(pTHX_3) - __attribute__nonnull__(pTHX_4); -#define PERL_ARGS_ASSERT_GROK_BSLASH_X \ - assert(s); assert(uv); assert(len); assert(error_msg) - -PERL_STATIC_INLINE I32 S_regcurly(pTHX_ const char *s) - __attribute__warn_unused_result__ - __attribute__pure__ - __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT_REGCURLY \ - assert(s) - -#endif #if defined(PERL_IN_DUMP_C) STATIC CV* S_deb_curcv(pTHX_ const I32 ix); STATIC void S_debprof(pTHX_ const OP *o) @@ -5801,6 +5760,11 @@ STATIC OP* S_fold_constants(pTHX_ OP *o) assert(o) STATIC OP* S_force_list(pTHX_ OP* arg); +STATIC void S_forget_pmop(pTHX_ PMOP *const o) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_FORGET_PMOP \ + assert(o) + STATIC OP* S_gen_constant_list(pTHX_ OP* o); STATIC SV* S_gv_ename(pTHX_ GV *gv) __attribute__nonnull__(pTHX_1); @@ -5933,13 +5897,6 @@ STATIC OP* S_too_many_arguments_sv(pTHX_ OP *o, SV* namesv, U32 flags) #define PERL_ARGS_ASSERT_TOO_MANY_ARGUMENTS_SV \ assert(o); assert(namesv) -# if defined(USE_ITHREADS) -STATIC void S_forget_pmop(pTHX_ PMOP *const o, U32 flags) - __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT_FORGET_PMOP \ - assert(o) - -# endif #endif #if defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C) PERL_CALLCONV void Perl_report_redefined_cv(pTHX_ const SV *name, const CV *old_cv, SV * const *new_const_svp) @@ -6590,7 +6547,7 @@ STATIC regnode* S_regpiece(pTHX_ struct RExC_state_t *pRExC_state, I32 *flagp, U #define PERL_ARGS_ASSERT_REGPIECE \ assert(pRExC_state); assert(flagp) -STATIC I32 S_regpposixcc(pTHX_ struct RExC_state_t *pRExC_state, I32 value, SV *free_me) +PERL_STATIC_INLINE I32 S_regpposixcc(pTHX_ struct RExC_state_t *pRExC_state, I32 value, SV *free_me) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_REGPPOSIXCC \ assert(pRExC_state) @@ -6685,6 +6642,36 @@ PERL_CALLCONV SV* Perl__core_swash_init(pTHX_ const char* pkg, const char* name, assert(pkg); assert(name); assert(listsv) #endif +#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) +STATIC char S_grok_bslash_c(pTHX_ const char source, const bool utf8, const bool output_warning) + __attribute__warn_unused_result__; + +STATIC bool S_grok_bslash_o(pTHX_ const char* s, UV* uv, STRLEN* len, const char** error_msg, const bool output_warning) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2) + __attribute__nonnull__(pTHX_3) + __attribute__nonnull__(pTHX_4); +#define PERL_ARGS_ASSERT_GROK_BSLASH_O \ + assert(s); assert(uv); assert(len); assert(error_msg) + +PERL_STATIC_INLINE bool S_grok_bslash_x(pTHX_ const char* s, UV* uv, STRLEN* len, const char** error_msg, const bool output_warning) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1) + __attribute__nonnull__(pTHX_2) + __attribute__nonnull__(pTHX_3) + __attribute__nonnull__(pTHX_4); +#define PERL_ARGS_ASSERT_GROK_BSLASH_X \ + assert(s); assert(uv); assert(len); assert(error_msg) + +PERL_STATIC_INLINE I32 S_regcurly(pTHX_ const char *s) + __attribute__warn_unused_result__ + __attribute__pure__ + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_REGCURLY \ + assert(s) + +#endif #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C) PERL_CALLCONV SV* Perl__add_range_to_invlist(pTHX_ SV* invlist, const UV start, const UV end) __attribute__warn_unused_result__; @@ -7252,13 +7239,13 @@ STATIC UV S_check_locale_boundary_crossing(pTHX_ const U8* const p, const UV res #define PERL_ARGS_ASSERT_CHECK_LOCALE_BOUNDARY_CROSSING \ assert(p); assert(ustrp); assert(lenp) -STATIC STRLEN S_is_utf8_char_slow(const U8 *s, const STRLEN len) +PERL_STATIC_INLINE STRLEN S_is_utf8_char_slow(const U8 *s, const STRLEN len) __attribute__warn_unused_result__ __attribute__nonnull__(1); #define PERL_ARGS_ASSERT_IS_UTF8_CHAR_SLOW \ assert(s) -STATIC bool S_is_utf8_common(pTHX_ const U8 *const p, SV **swash, const char * const swashname) +PERL_STATIC_INLINE bool S_is_utf8_common(pTHX_ const U8 *const p, SV **swash, const char * const swashname) __attribute__warn_unused_result__ __attribute__nonnull__(pTHX_1) __attribute__nonnull__(pTHX_2) @@ -7291,6 +7278,18 @@ PERL_CALLCONV UV Perl__to_fold_latin1(pTHX_ const U8 c, U8 *p, STRLEN *lenp, con #define PERL_ARGS_ASSERT__TO_FOLD_LATIN1 \ assert(p); assert(lenp) +PERL_CALLCONV bool Perl_is_utf8_X_extend(pTHX_ const U8 *p) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_IS_UTF8_X_EXTEND \ + assert(p) + +PERL_CALLCONV bool Perl_is_utf8_X_regular_begin(pTHX_ const U8 *p) + __attribute__warn_unused_result__ + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_IS_UTF8_X_REGULAR_BEGIN \ + assert(p) + #endif #if defined(PERL_IN_UTIL_C) STATIC bool S_ckwarn_common(pTHX_ U32 w); @@ -7511,13 +7510,6 @@ PERL_CALLCONV long Perl_my_letohl(long n); #if defined(PERL_NEED_MY_LETOHS) PERL_CALLCONV short Perl_my_letohs(short n); #endif -#if defined(PERL_OLD_COPY_ON_WRITE) -PERL_CALLCONV SV* Perl_sv_setsv_cow(pTHX_ SV* dstr, SV* sstr) - __attribute__nonnull__(pTHX_2); -#define PERL_ARGS_ASSERT_SV_SETSV_COW \ - assert(sstr) - -#endif #if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C) STATIC void S_pidgone(pTHX_ Pid_t pid, int status); #endif