X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=proto.h;h=e201596cf1f18ec9cecb1d21d856105332df93dc;hb=30ef33217aeee51ee47b2433e9384b011646254a;hp=d3137e6013b65a1071aa3ff32c67695c17b10c55;hpb=baca2b926d06af79ff324964e3a80ae62949176a;p=p5sagit%2Fp5-mst-13.2.git diff --git a/proto.h b/proto.h index d3137e6..e201596 100644 --- a/proto.h +++ b/proto.h @@ -315,11 +315,13 @@ PERL_CALLCONV char* Perl_hv_iterkey(pTHX_ HE* entry, I32* retlen); PERL_CALLCONV SV* Perl_hv_iterkeysv(pTHX_ HE* entry); PERL_CALLCONV HE* Perl_hv_iternext(pTHX_ HV* tb); PERL_CALLCONV SV* Perl_hv_iternextsv(pTHX_ HV* hv, char** key, I32* retlen); +PERL_CALLCONV HE* Perl_hv_iternext_flags(pTHX_ HV* tb, I32 flags); PERL_CALLCONV SV* Perl_hv_iterval(pTHX_ HV* tb, HE* entry); PERL_CALLCONV void Perl_hv_ksplit(pTHX_ HV* hv, IV newmax); PERL_CALLCONV void Perl_hv_magic(pTHX_ HV* hv, GV* gv, int how); PERL_CALLCONV SV** Perl_hv_store(pTHX_ HV* tb, const char* key, I32 klen, SV* val, U32 hash); PERL_CALLCONV HE* Perl_hv_store_ent(pTHX_ HV* tb, SV* key, SV* val, U32 hash); +PERL_CALLCONV SV** Perl_hv_store_flags(pTHX_ HV* tb, const char* key, I32 klen, SV* val, U32 hash, int flags); PERL_CALLCONV void Perl_hv_undef(pTHX_ HV* tb); PERL_CALLCONV I32 Perl_ibcmp(pTHX_ const char* a, const char* b, I32 len); PERL_CALLCONV I32 Perl_ibcmp_locale(pTHX_ const char* a, const char* b, I32 len); @@ -375,6 +377,7 @@ PERL_CALLCONV bool Perl_is_utf8_string(pTHX_ U8 *s, STRLEN len); PERL_CALLCONV bool Perl_is_utf8_alnum(pTHX_ U8 *p); PERL_CALLCONV bool Perl_is_utf8_alnumc(pTHX_ U8 *p); PERL_CALLCONV bool Perl_is_utf8_idfirst(pTHX_ U8 *p); +PERL_CALLCONV bool Perl_is_utf8_idcont(pTHX_ U8 *p); PERL_CALLCONV bool Perl_is_utf8_alpha(pTHX_ U8 *p); PERL_CALLCONV bool Perl_is_utf8_ascii(pTHX_ U8 *p); PERL_CALLCONV bool Perl_is_utf8_space(pTHX_ U8 *p); @@ -599,11 +602,7 @@ PERL_CALLCONV struct perl_thread* Perl_new_struct_thread(pTHX_ struct perl_threa PERL_CALLCONV void Perl_reentrant_size(pTHX); PERL_CALLCONV void Perl_reentrant_init(pTHX); PERL_CALLCONV void Perl_reentrant_free(pTHX); -PERL_CALLCONV void* Perl_reentrant_retry(const char*, ...) -#ifdef CHECK_FORMAT - __attribute__((format(printf,1,2))) -#endif -; +PERL_CALLCONV void* Perl_reentrant_retry(const char*, ...); #endif PERL_CALLCONV void Perl_call_atexit(pTHX_ ATEXIT_t fn, void *ptr); PERL_CALLCONV I32 Perl_call_argv(pTHX_ const char* sub_name, I32 flags, char** argv); @@ -628,7 +627,7 @@ PERL_CALLCONV void Perl_set_numeric_standard(pTHX); PERL_CALLCONV void Perl_require_pv(pTHX_ const char* pv); PERL_CALLCONV void Perl_pack_cat(pTHX_ SV *cat, char *pat, char *patend, SV **beglist, SV **endlist, SV ***next_in_list, U32 flags); PERL_CALLCONV void Perl_pidgone(pTHX_ Pid_t pid, int status); -PERL_CALLCONV void Perl_pmflag(pTHX_ U16* pmfl, int ch); +PERL_CALLCONV void Perl_pmflag(pTHX_ U32* pmfl, int ch); PERL_CALLCONV OP* Perl_pmruntime(pTHX_ OP* pm, OP* expr, OP* repl); PERL_CALLCONV OP* Perl_pmtrans(pTHX_ OP* o, OP* expr, OP* repl); PERL_CALLCONV OP* Perl_pop_return(pTHX); @@ -660,9 +659,9 @@ PERL_CALLCONV void Perl_rxres_save(pTHX_ void** rsp, REGEXP* prx); #if !defined(HAS_RENAME) PERL_CALLCONV I32 Perl_same_dirent(pTHX_ char* a, char* b); #endif -PERL_CALLCONV char* Perl_savepv(pTHX_ const char* sv); -PERL_CALLCONV char* Perl_savesharedpv(pTHX_ const char* sv); -PERL_CALLCONV char* Perl_savepvn(pTHX_ const char* sv, I32 len); +PERL_CALLCONV char* Perl_savepv(pTHX_ const char* pv); +PERL_CALLCONV char* Perl_savesharedpv(pTHX_ const char* pv); +PERL_CALLCONV char* Perl_savepvn(pTHX_ const char* pv, I32 len); PERL_CALLCONV void Perl_savestack_grow(pTHX); PERL_CALLCONV void Perl_save_aelem(pTHX_ AV* av, I32 idx, SV **sptr); PERL_CALLCONV I32 Perl_save_alloc(pTHX_ I32 size, I32 pad); @@ -800,7 +799,6 @@ PERL_CALLCONV void Perl_sv_setpvf(pTHX_ SV* sv, const char* pat, ...) ; PERL_CALLCONV void Perl_sv_vsetpvf(pTHX_ SV* sv, const char* pat, va_list* args); PERL_CALLCONV void Perl_sv_setiv(pTHX_ SV* sv, IV num); -PERL_CALLCONV void Perl_sv_setpviv(pTHX_ SV* sv, IV num); PERL_CALLCONV void Perl_sv_setuv(pTHX_ SV* sv, UV num); PERL_CALLCONV void Perl_sv_setnv(pTHX_ SV* sv, NV num); PERL_CALLCONV SV* Perl_sv_setref_iv(pTHX_ SV* rv, const char* classname, IV iv); @@ -923,7 +921,6 @@ PERL_CALLCONV void Perl_sv_setpvf_mg(pTHX_ SV *sv, const char* pat, ...) ; PERL_CALLCONV void Perl_sv_vsetpvf_mg(pTHX_ SV* sv, const char* pat, va_list* args); PERL_CALLCONV void Perl_sv_setiv_mg(pTHX_ SV *sv, IV i); -PERL_CALLCONV void Perl_sv_setpviv_mg(pTHX_ SV *sv, IV iv); PERL_CALLCONV void Perl_sv_setuv_mg(pTHX_ SV *sv, UV u); PERL_CALLCONV void Perl_sv_setnv_mg(pTHX_ SV *sv, NV num); PERL_CALLCONV void Perl_sv_setpv_mg(pTHX_ SV *sv, const char *ptr); @@ -1004,6 +1001,7 @@ PERL_CALLCONV char * Perl_custom_op_desc(pTHX_ OP* op); PERL_CALLCONV void Perl_sv_nosharing(pTHX_ SV *); PERL_CALLCONV void Perl_sv_nolocking(pTHX_ SV *); PERL_CALLCONV void Perl_sv_nounlocking(pTHX_ SV *); +PERL_CALLCONV int Perl_nothreadhook(pTHX); END_EXTERN_C @@ -1032,8 +1030,12 @@ STATIC void S_hfreeentries(pTHX_ HV *hv); STATIC void S_more_he(pTHX); STATIC HE* S_new_he(pTHX); STATIC void S_del_he(pTHX_ HE *p); -STATIC HEK* S_save_hek(pTHX_ const char *str, I32 len, U32 hash); +STATIC HEK* S_save_hek_flags(pTHX_ const char *str, I32 len, U32 hash, int flags); STATIC void S_hv_magic_check(pTHX_ HV *hv, bool *needs_copy, bool *needs_store); +STATIC void S_unshare_hek_or_pvn(pTHX_ HEK* hek, const char* sv, I32 len, U32 hash); +STATIC HEK* S_share_hek_flags(pTHX_ const char* sv, I32 len, U32 hash, int flags); +STATIC SV** S_hv_fetch_flags(pTHX_ HV* tb, const char* key, I32 klen, I32 lval, int flags); +STATIC void S_hv_notallowed(pTHX_ int flags, const char *key, I32 klen, const char *msg); #endif #if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT) @@ -1273,7 +1275,7 @@ STATIC int S_sv_2iuv_non_preserve(pTHX_ SV *sv, I32 numtype); STATIC I32 S_expect_number(pTHX_ char** pattern); # # if defined(USE_ITHREADS) -STATIC SV* S_gv_share(pTHX_ SV *sv); +STATIC SV* S_gv_share(pTHX_ SV *sv, CLONE_PARAMS *param); # endif #endif