PERL_CALLCONV void Perl_av_clear(pTHX_ AV *av);
#define PERL_ARGS_ASSERT_AV_CLEAR \
assert(av)
+#ifndef PERL_NO_INLINE_FUNCTIONS
+PERL_STATIC_INLINE Size_t Perl_av_count(pTHX_ AV *av)
+ __attribute__warn_unused_result__;
+#define PERL_ARGS_ASSERT_AV_COUNT \
+ assert(av)
+#endif
+
PERL_CALLCONV void Perl_av_create_and_push(pTHX_ AV **const avp, SV *const val);
#define PERL_ARGS_ASSERT_AV_CREATE_AND_PUSH \
assert(avp); assert(val)
__attribute__warn_unused_result__; */
#define PERL_ARGS_ASSERT_AV_TINDEX
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE SSize_t Perl_av_top_index(pTHX_ AV *av)
- __attribute__warn_unused_result__;
-#define PERL_ARGS_ASSERT_AV_TOP_INDEX \
- assert(av)
-#endif
+/* PERL_CALLCONV SSize_t av_top_index(pTHX_ AV *av)
+ __attribute__warn_unused_result__; */
+#define PERL_ARGS_ASSERT_AV_TOP_INDEX
PERL_CALLCONV void Perl_av_undef(pTHX_ AV *av);
#define PERL_ARGS_ASSERT_AV_UNDEF \
PERL_CALLCONV void Perl_delete_eval_scope(pTHX);
#define PERL_ARGS_ASSERT_DELETE_EVAL_SCOPE
-PERL_CALLCONV char* Perl_delimcpy(char* to, const char* toend, const char* from, const char* fromend, int delim, I32* retlen);
+PERL_CALLCONV char* Perl_delimcpy(char* to, const char* to_end, const char* from, const char* from_end, const int delim, I32* retlen);
#define PERL_ARGS_ASSERT_DELIMCPY \
- assert(to); assert(toend); assert(from); assert(fromend); assert(retlen)
-PERL_CALLCONV char* Perl_delimcpy_no_escape(char* to, const char* toend, const char* from, const char* fromend, int delim, I32* retlen);
+ assert(to); assert(to_end); assert(from); assert(from_end); assert(retlen)
+PERL_CALLCONV char* Perl_delimcpy_no_escape(char* to, const char* to_end, const char* from, const char* from_end, const int delim, I32* retlen);
#define PERL_ARGS_ASSERT_DELIMCPY_NO_ESCAPE \
- assert(to); assert(toend); assert(from); assert(fromend); assert(retlen)
+ assert(to); assert(to_end); assert(from); assert(from_end); assert(retlen)
PERL_CALLCONV void Perl_despatch_signals(pTHX);
#define PERL_ARGS_ASSERT_DESPATCH_SIGNALS
PERL_CALLCONV_NO_RET OP* Perl_die(pTHX_ const char* pat, ...)
PERL_CALLCONV GV* Perl_gv_fetchmethod_sv_flags(pTHX_ HV* stash, SV* namesv, U32 flags);
#define PERL_ARGS_ASSERT_GV_FETCHMETHOD_SV_FLAGS \
assert(stash); assert(namesv)
-PERL_CALLCONV GV* Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, const svtype sv_type);
+PERL_CALLCONV GV* Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 flags, const svtype sv_type);
#define PERL_ARGS_ASSERT_GV_FETCHPV \
assert(nambeg)
PERL_CALLCONV GV* Perl_gv_fetchpvn_flags(pTHX_ const char* name, STRLEN len, I32 flags, const svtype sv_type);
PERL_CALLCONV GV * Perl_gv_override(pTHX_ const char * const name, const STRLEN len);
#define PERL_ARGS_ASSERT_GV_OVERRIDE \
assert(name)
-PERL_CALLCONV void Perl_gv_setref(pTHX_ SV *const dstr, SV *const sstr);
+PERL_CALLCONV void Perl_gv_setref(pTHX_ SV *const dsv, SV *const ssv);
#define PERL_ARGS_ASSERT_GV_SETREF \
- assert(dstr); assert(sstr)
+ assert(dsv); assert(ssv)
PERL_CALLCONV HV* Perl_gv_stashpv(pTHX_ const char* name, I32 flags);
#define PERL_ARGS_ASSERT_GV_STASHPV \
assert(name)
PERL_CALLCONV int Perl_magic_freearylen_p(pTHX_ SV* sv, MAGIC* mg);
#define PERL_ARGS_ASSERT_MAGIC_FREEARYLEN_P \
assert(sv); assert(mg)
+PERL_CALLCONV int Perl_magic_freemglob(pTHX_ SV* sv, MAGIC* mg);
+#define PERL_ARGS_ASSERT_MAGIC_FREEMGLOB \
+ assert(sv); assert(mg)
PERL_CALLCONV int Perl_magic_freeovrld(pTHX_ SV* sv, MAGIC* mg);
#define PERL_ARGS_ASSERT_MAGIC_FREEOVRLD \
assert(sv); assert(mg)
+PERL_CALLCONV int Perl_magic_freeutf8(pTHX_ SV* sv, MAGIC* mg);
+#define PERL_ARGS_ASSERT_MAGIC_FREEUTF8 \
+ assert(sv); assert(mg)
PERL_CALLCONV int Perl_magic_get(pTHX_ SV* sv, MAGIC* mg);
#define PERL_ARGS_ASSERT_MAGIC_GET \
assert(sv); assert(mg)
#define PERL_ARGS_ASSERT_OPTIMIZE_OPTREE \
assert(o)
#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_pack_cat(pTHX_ SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist, SV ***next_in_list, U32 flags);
+PERL_CALLCONV void Perl_pack_cat(pTHX_ SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist, SV ***next_in_list, U32 flags)
+ __attribute__deprecated__;
#define PERL_ARGS_ASSERT_PACK_CAT \
assert(cat); assert(pat); assert(patend); assert(beglist); assert(endlist); assert(next_in_list)
#endif
+
PERL_CALLCONV void Perl_package(pTHX_ OP* o);
#define PERL_ARGS_ASSERT_PACKAGE \
assert(o)
#define PERL_ARGS_ASSERT_PAD_BLOCK_START
#ifndef NO_MATHOMS
PERL_CALLCONV HV* Perl_pad_compname_type(pTHX_ const PADOFFSET po)
+ __attribute__deprecated__
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_PAD_COMPNAME_TYPE
#endif
#define PERL_ARGS_ASSERT_SV_2PV \
assert(sv)
#endif
-PERL_CALLCONV char* Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags);
+PERL_CALLCONV char* Perl_sv_2pv_flags(pTHX_ SV *const sv, STRLEN *const lp, const U32 flags);
#define PERL_ARGS_ASSERT_SV_2PV_FLAGS \
assert(sv)
#ifndef NO_MATHOMS
PERL_CALLCONV bool Perl_sv_cat_decode(pTHX_ SV* dsv, SV *encoding, SV *ssv, int *offset, char* tstr, int tlen);
#define PERL_ARGS_ASSERT_SV_CAT_DECODE \
assert(dsv); assert(encoding); assert(ssv); assert(offset); assert(tstr)
-PERL_CALLCONV void Perl_sv_catpv(pTHX_ SV *const sv, const char* ptr);
+PERL_CALLCONV void Perl_sv_catpv(pTHX_ SV *const dsv, const char* sstr);
#define PERL_ARGS_ASSERT_SV_CATPV \
- assert(sv)
-PERL_CALLCONV void Perl_sv_catpv_flags(pTHX_ SV *dstr, const char *sstr, const I32 flags);
+ assert(dsv)
+PERL_CALLCONV void Perl_sv_catpv_flags(pTHX_ SV *dsv, const char *sstr, const I32 flags);
#define PERL_ARGS_ASSERT_SV_CATPV_FLAGS \
- assert(dstr); assert(sstr)
-PERL_CALLCONV void Perl_sv_catpv_mg(pTHX_ SV *const sv, const char *const ptr);
+ assert(dsv); assert(sstr)
+PERL_CALLCONV void Perl_sv_catpv_mg(pTHX_ SV *const dsv, const char *const sstr);
#define PERL_ARGS_ASSERT_SV_CATPV_MG \
- assert(sv)
+ assert(dsv)
PERL_CALLCONV void Perl_sv_catpvf(pTHX_ SV *const sv, const char *const pat, ...)
__attribute__format__(__printf__,pTHX_2,pTHX_3);
#define PERL_ARGS_ASSERT_SV_CATPVF \
#define PERL_ARGS_ASSERT_SV_CATPVN \
assert(dsv); assert(sstr)
#endif
-PERL_CALLCONV void Perl_sv_catpvn_flags(pTHX_ SV *const dstr, const char *sstr, const STRLEN len, const I32 flags);
+PERL_CALLCONV void Perl_sv_catpvn_flags(pTHX_ SV *const dsv, const char *sstr, const STRLEN len, const I32 flags);
#define PERL_ARGS_ASSERT_SV_CATPVN_FLAGS \
- assert(dstr); assert(sstr)
+ assert(dsv); assert(sstr)
#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_catpvn_mg(pTHX_ SV *sv, const char *ptr, STRLEN len);
+PERL_CALLCONV void Perl_sv_catpvn_mg(pTHX_ SV *dsv, const char *sstr, STRLEN len);
#define PERL_ARGS_ASSERT_SV_CATPVN_MG \
- assert(sv); assert(ptr)
+ assert(dsv); assert(sstr)
#endif
#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_catsv(pTHX_ SV *dstr, SV *sstr);
+PERL_CALLCONV void Perl_sv_catsv(pTHX_ SV *dsv, SV *sstr);
#define PERL_ARGS_ASSERT_SV_CATSV \
- assert(dstr)
+ assert(dsv)
#endif
-PERL_CALLCONV void Perl_sv_catsv_flags(pTHX_ SV *const dsv, SV *const ssv, const I32 flags);
+PERL_CALLCONV void Perl_sv_catsv_flags(pTHX_ SV *const dsv, SV *const sstr, const I32 flags);
#define PERL_ARGS_ASSERT_SV_CATSV_FLAGS \
assert(dsv)
#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_catsv_mg(pTHX_ SV *dsv, SV *ssv);
+PERL_CALLCONV void Perl_sv_catsv_mg(pTHX_ SV *dsv, SV *sstr);
#define PERL_ARGS_ASSERT_SV_CATSV_MG \
assert(dsv)
#endif
#define PERL_ARGS_ASSERT_SV_PVN_FORCE \
assert(sv)
#endif
-PERL_CALLCONV char* Perl_sv_pvn_force_flags(pTHX_ SV *const sv, STRLEN *const lp, const I32 flags);
+PERL_CALLCONV char* Perl_sv_pvn_force_flags(pTHX_ SV *const sv, STRLEN *const lp, const U32 flags);
#define PERL_ARGS_ASSERT_SV_PVN_FORCE_FLAGS \
assert(sv)
#ifndef NO_MATHOMS
#define PERL_ARGS_ASSERT_SV_SETREF_UV \
assert(rv)
#ifndef NO_MATHOMS
-PERL_CALLCONV void Perl_sv_setsv(pTHX_ SV *dstr, SV *sstr);
+PERL_CALLCONV void Perl_sv_setsv(pTHX_ SV *dsv, SV *ssv);
#define PERL_ARGS_ASSERT_SV_SETSV \
- assert(dstr)
+ assert(dsv)
#endif
-PERL_CALLCONV void Perl_sv_setsv_flags(pTHX_ SV *dstr, SV *sstr, const I32 flags);
+PERL_CALLCONV void Perl_sv_setsv_flags(pTHX_ SV *dsv, SV *ssv, const I32 flags);
#define PERL_ARGS_ASSERT_SV_SETSV_FLAGS \
- assert(dstr)
-PERL_CALLCONV void Perl_sv_setsv_mg(pTHX_ SV *const dstr, SV *const sstr);
+ assert(dsv)
+PERL_CALLCONV void Perl_sv_setsv_mg(pTHX_ SV *const dsv, SV *const ssv);
#define PERL_ARGS_ASSERT_SV_SETSV_MG \
- assert(dstr)
+ assert(dsv)
PERL_CALLCONV void Perl_sv_setuv(pTHX_ SV *const sv, const UV num);
#define PERL_ARGS_ASSERT_SV_SETUV \
assert(sv)
#define PERL_ARGS_ASSERT_DO_EXEC \
assert(cmd)
#endif
-#if !(defined(PERL_GLOBAL_STRUCT_PRIVATE))
-# if defined(PERL_IMPLICIT_CONTEXT)
-PERL_CALLCONV void* Perl_my_cxt_init(pTHX_ int *indexp, size_t size);
-#define PERL_ARGS_ASSERT_MY_CXT_INIT \
- assert(indexp)
-# endif
-#endif
#if !(defined(PERL_USE_3ARG_SIGHANDLER))
PERL_CALLCONV Signal_t Perl_csighandler(int sig);
#define PERL_ARGS_ASSERT_CSIGHANDLER
#endif
#if defined(PERL_ANY_COW)
-PERL_CALLCONV SV* Perl_sv_setsv_cow(pTHX_ SV* dstr, SV* sstr);
+PERL_CALLCONV SV* Perl_sv_setsv_cow(pTHX_ SV* dsv, SV* ssv);
#define PERL_ARGS_ASSERT_SV_SETSV_COW \
- assert(sstr)
+ assert(ssv)
#endif
#if defined(PERL_CORE)
PERL_CALLCONV void Perl_opslab_force_free(pTHX_ OPSLAB *slab);
#define PERL_ARGS_ASSERT_GV_SVADD
#endif
#endif
-#if defined(PERL_GLOBAL_STRUCT)
-PERL_CALLCONV struct perl_vars * Perl_GetVars(pTHX);
-#define PERL_ARGS_ASSERT_GETVARS
-PERL_CALLCONV void Perl_free_global_struct(pTHX_ struct perl_vars *plvarsp);
-#define PERL_ARGS_ASSERT_FREE_GLOBAL_STRUCT \
- assert(plvarsp)
-PERL_CALLCONV struct perl_vars* Perl_init_global_struct(pTHX);
-#define PERL_ARGS_ASSERT_INIT_GLOBAL_STRUCT
-#endif
-#if defined(PERL_GLOBAL_STRUCT_PRIVATE)
-# if defined(PERL_IMPLICIT_CONTEXT)
-PERL_CALLCONV int Perl_my_cxt_index(pTHX_ const char *my_cxt_key);
-#define PERL_ARGS_ASSERT_MY_CXT_INDEX \
- assert(my_cxt_key)
-PERL_CALLCONV void* Perl_my_cxt_init(pTHX_ const char *my_cxt_key, size_t size);
-#define PERL_ARGS_ASSERT_MY_CXT_INIT \
- assert(my_cxt_key)
-# endif
-#endif
#if defined(PERL_IMPLICIT_CONTEXT)
PERL_CALLCONV_NO_RET void Perl_croak_nocontext(const char* pat, ...)
__attribute__noreturn__
#define PERL_ARGS_ASSERT_MESS_NOCONTEXT \
assert(pat)
+PERL_CALLCONV void* Perl_my_cxt_init(pTHX_ int *indexp, size_t size);
+#define PERL_ARGS_ASSERT_MY_CXT_INIT \
+ assert(indexp)
PERL_CALLCONV SV* Perl_newSVpvf_nocontext(const char *const pat, ...)
__attribute__format__(__printf__,1,2);
#define PERL_ARGS_ASSERT_NEWSVPVF_NOCONTEXT \
STATIC void S_ssc_union(pTHX_ regnode_ssc *ssc, SV* const invlist, const bool invert_2nd);
#define PERL_ARGS_ASSERT_SSC_UNION \
assert(ssc); assert(invlist)
-STATIC SSize_t S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, SSize_t *minlenp, SSize_t *deltap, regnode *last, struct scan_data_t *data, I32 stopparen, U32 recursed_depth, regnode_ssc *and_withp, U32 flags, U32 depth);
+STATIC SSize_t S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, SSize_t *minlenp, SSize_t *deltap, regnode *last, struct scan_data_t *data, I32 stopparen, U32 recursed_depth, regnode_ssc *and_withp, U32 flags, U32 depth, bool was_mutate_ok);
#define PERL_ARGS_ASSERT_STUDY_CHUNK \
assert(pRExC_state); assert(scanp); assert(minlenp); assert(deltap); assert(last)
#endif
assert(invlist)
#endif
#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-#ifndef PERL_NO_INLINE_FUNCTIONS
-PERL_STATIC_INLINE bool S_regcurly(const char *s)
+PERL_CALLCONV bool Perl_regcurly(const char *s)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_REGCURLY \
assert(s)
-#endif
#endif
#if defined(PERL_IN_REGEXEC_C)
STATIC bool S_glob_2number(pTHX_ GV* const gv);
#define PERL_ARGS_ASSERT_GLOB_2NUMBER \
assert(gv)
-STATIC void S_glob_assign_glob(pTHX_ SV *const dstr, SV *const sstr, const int dtype);
+STATIC void S_glob_assign_glob(pTHX_ SV *const dsv, SV *const ssv, const int dtype);
#define PERL_ARGS_ASSERT_GLOB_ASSIGN_GLOB \
- assert(dstr); assert(sstr)
+ assert(dsv); assert(ssv)
STATIC SV * S_more_sv(pTHX);
#define PERL_ARGS_ASSERT_MORE_SV
STATIC void S_not_a_number(pTHX_ SV *const sv);
#define PERL_ARGS_ASSERT_VISIT \
assert(f)
# if defined(USE_ITHREADS)
-STATIC SV* S_sv_dup_common(pTHX_ const SV *const sstr, CLONE_PARAMS *const param)
+STATIC SV* S_sv_dup_common(pTHX_ const SV *const ssv, CLONE_PARAMS *const param)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SV_DUP_COMMON \
- assert(sstr); assert(param)
+ assert(ssv); assert(param)
STATIC SV ** S_sv_dup_inc_multiple(pTHX_ SV *const *source, SV **dest, SSize_t items, CLONE_PARAMS *const param);
#define PERL_ARGS_ASSERT_SV_DUP_INC_MULTIPLE \
PERL_CALLCONV void* Perl_regdupe_internal(pTHX_ REGEXP * const r, CLONE_PARAMS* param);
#define PERL_ARGS_ASSERT_REGDUPE_INTERNAL \
assert(r); assert(param)
-PERL_CALLCONV void Perl_rvpv_dup(pTHX_ SV *const dstr, const SV *const sstr, CLONE_PARAMS *const param);
+PERL_CALLCONV void Perl_rvpv_dup(pTHX_ SV *const dsv, const SV *const ssv, CLONE_PARAMS *const param);
#define PERL_ARGS_ASSERT_RVPV_DUP \
- assert(dstr); assert(sstr); assert(param)
+ assert(dsv); assert(ssv); assert(param)
PERL_CALLCONV PERL_SI* Perl_si_dup(pTHX_ PERL_SI* si, CLONE_PARAMS* param)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SI_DUP \
#define PERL_ARGS_ASSERT_SS_DUP \
assert(proto_perl); assert(param)
-PERL_CALLCONV SV* Perl_sv_dup(pTHX_ const SV *const sstr, CLONE_PARAMS *const param)
+PERL_CALLCONV SV* Perl_sv_dup(pTHX_ const SV *const ssv, CLONE_PARAMS *const param)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SV_DUP \
assert(param)
-PERL_CALLCONV SV* Perl_sv_dup_inc(pTHX_ const SV *const sstr, CLONE_PARAMS *const param)
+PERL_CALLCONV SV* Perl_sv_dup_inc(pTHX_ const SV *const ssv, CLONE_PARAMS *const param)
__attribute__warn_unused_result__;
#define PERL_ARGS_ASSERT_SV_DUP_INC \
assert(param)
#define PERL_ARGS_ASSERT__IS_CUR_LC_CATEGORY_UTF8
#endif
#if defined(USE_LOCALE_COLLATE)
+PERL_CALLCONV int Perl_magic_freecollxfrm(pTHX_ SV* sv, MAGIC* mg);
+#define PERL_ARGS_ASSERT_MAGIC_FREECOLLXFRM \
+ assert(sv); assert(mg)
PERL_CALLCONV int Perl_magic_setcollxfrm(pTHX_ SV* sv, MAGIC* mg);
#define PERL_ARGS_ASSERT_MAGIC_SETCOLLXFRM \
assert(sv); assert(mg)
assert(fname)
#endif
-#if defined(WIN32) || defined(__SYMBIAN32__) || defined(VMS)
+#if defined(WIN32) || defined(VMS)
PERL_CALLCONV int Perl_do_aspawn(pTHX_ SV* really, SV** mark, SV** sp);
#define PERL_ARGS_ASSERT_DO_ASPAWN \
assert(mark); assert(sp)