This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Avoid accessing free()d memory when calling reset in one thread, after
[perl5.git] / embed.fnc
index b41e2ea..99252c2 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -108,7 +108,7 @@ ApdR        |AV*    |av_make        |I32 size|NN SV** svp
 Apd    |SV*    |av_pop         |NN AV* ar
 ApdoxM |void   |av_create_and_push|NN AV **const avp|NN SV *const val
 Apd    |void   |av_push        |NN AV* ar|NN SV* val
-p      |void   |av_reify       |NN AV* ar
+EXp    |void   |av_reify       |NN AV* ar
 ApdR   |SV*    |av_shift       |NN AV* ar
 Apd    |SV**   |av_store       |NN AV* ar|I32 key|NULLOK SV* val
 Apd    |void   |av_undef       |NN AV* ar
@@ -402,10 +402,10 @@ ApR       |bool   |is_utf8_mark   |NN const U8 *p
 p      |OP*    |jmaybe         |NN OP* arg
 pP     |I32    |keyword        |NN const char* d|I32 len|bool all_keywords
 Ap     |void   |leave_scope    |I32 base
-p      |void   |lex_end
+EXp    |void   |lex_end
 p      |void   |lex_start      |NULLOK SV* line
 Ap     |void   |op_null        |NN OP* o
-p      |void   |op_clear       |NN OP* o
+EXp    |void   |op_clear       |NN OP* o
 Ap     |void   |op_refcnt_lock
 Ap     |void   |op_refcnt_unlock
 p      |OP*    |linklist       |NN OP* o
@@ -478,7 +478,7 @@ p   |char*  |mem_collxfrm   |NN const char* s|STRLEN len|NN STRLEN* xlen
 #endif
 Afp    |SV*    |mess           |NN const char* pat|...
 Ap     |SV*    |vmess          |NN const char* pat|NULLOK va_list* args
-p      |void   |qerror         |NN SV* err
+EXp    |void   |qerror         |NN SV* err
 Apd    |void   |sortsv         |NN SV** array|size_t num_elts|NN SVCOMPARE_t cmp
 Apd    |void   |sortsv_flags   |NN SV** array|size_t num_elts|NN SVCOMPARE_t cmp|U32 flags
 Apd    |int    |mg_clear       |NN SV* sv
@@ -492,7 +492,7 @@ Apd |void   |mg_magical     |NN SV* sv
 Apd    |int    |mg_set         |NN SV* sv
 Ap     |I32    |mg_size        |NN SV* sv
 Ap     |void   |mini_mktime    |NN struct tm *pm
-p      |OP*    |mod            |NULLOK OP* o|I32 type
+EXp    |OP*    |mod            |NULLOK OP* o|I32 type
 p      |int    |mode_from_discipline|NULLOK SV* discp
 Ap     |char*  |moreswitches   |NN char* s
 p      |OP*    |my             |NN OP* o
@@ -589,16 +589,17 @@ Afpda     |SV*    |newSVpvf       |NN const char* pat|...
 Apa    |SV*    |vnewSVpvf      |NN const char* pat|NULLOK va_list* args
 Apd    |SV*    |newSVrv        |NN SV* rv|NULLOK const char* classname
 Apda   |SV*    |newSVsv        |NULLOK SV* old
+Apda   |SV*    |newSV_type     |svtype type
 Apa    |OP*    |newUNOP        |I32 type|I32 flags|NULLOK OP* first
 Apa    |OP*    |newWHENOP      |NULLOK OP* cond|NN OP* block
 Apa    |OP*    |newWHILEOP     |I32 flags|I32 debuggable|NULLOK LOOP* loop \
                                |I32 whileline|NULLOK OP* expr|NULLOK OP* block|NULLOK OP* cont \
                                |I32 has_my
 Apa    |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
-Ap     |char*  |scan_vstring   |NN const char *vstr|NN SV *sv
+Ap     |char*  |scan_vstring   |NN const char *vstr|NN const char *end|NN SV *sv
 Apd    |const char*    |scan_version   |NN const char *vstr|NN SV *sv|bool qv
 Apd    |SV*    |new_version    |NN SV *ver
-Apd    |SV*    |upg_version    |NN SV *ver
+Apd    |SV*    |upg_version    |NN SV *ver|bool qv
 Apd    |bool   |vverify        |NN SV *vs
 Apd    |SV*    |vnumify        |NN SV *vs
 Apd    |SV*    |vnormal        |NN SV *vs
@@ -676,13 +677,14 @@ Ap        |I32    |pregexec       |NN regexp* prog|NN char* stringarg \
                                |NN char* strend|NN char* strbeg|I32 minend \
                                |NN SV* screamer|U32 nosave
 Ap     |void   |pregfree       |NULLOK struct regexp* r
+EXp    |struct regexp* |reg_temp_copy  |NN struct regexp* r
 Ap     |void   |regfree_internal|NULLOK struct regexp* r
 Ap     |char * |reg_stringify  |NN MAGIC *mg|NULLOK STRLEN *lp|NULLOK U32 *flags|NULLOK I32 *haseval
 #if defined(USE_ITHREADS)
 Ap     |void*  |regdupe_internal|NN const regexp* r|NN CLONE_PARAMS* param
 #endif
-Ap     |regexp*|pregcomp       |NN char* exp|NN char* xend|NN PMOP* pm
-Ap     |regexp*|re_compile     |NN char* exp|NN char* xend|NN PMOP* pm
+Ap     |regexp*|pregcomp       |NN char* exp|NN char* xend|U32 pm_flags
+Ap     |regexp*|re_compile     |NN char* exp|NN char* xend|U32 pm_flags
 Ap     |char*  |re_intuit_start|NN regexp* prog|NULLOK SV* sv|NN char* strpos \
                                |NN char* strend|U32 flags \
                                |NULLOK struct re_scream_pos_data_s *data
@@ -694,6 +696,7 @@ ApR |regnode*|regnext       |NN regnode* p
 
 EXp    |SV*|reg_named_buff_get |NN const REGEXP * const rx|NN SV* namesv|U32 flags
 EXp    |SV*|reg_numbered_buff_get|NN const REGEXP * const rx|I32 paren|NULLOK SV* usesv
+EXp    |SV*|reg_qr_pkg|NN const REGEXP * const rx
 
 Ep     |void   |regprop        |NULLOK const regexp *prog|NN SV* sv|NN const regnode* o
 Ap     |void   |repeatcpy      |NN char* to|NN const char* from|I32 len|I32 count
@@ -769,7 +772,7 @@ Ap  |char*  |screaminstr    |NN SV *bigstr|NN SV *littlestr|I32 start_shift \
 #if !defined(VMS)
 p      |I32    |setenv_getix   |NN const char* nam
 #endif
-p      |void   |setdefout      |NULLOK GV* gv
+EXp    |void   |setdefout      |NULLOK GV* gv
 Ap     |HEK*   |share_hek      |NN const char* str|I32 len|U32 hash
 #if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
 np     |Signal_t |sighandler   |int sig|...
@@ -912,7 +915,7 @@ Apd |I32    |unpack_str     |NN const char *pat|NN const char *patend|NN const char *s
 Apd    |I32    |unpackstring   |NN const char *pat|NN const char *patend|NN const char *s \
                                |NN const char *strend|U32 flags
 Ap     |void   |unsharepvn     |NULLOK const char* sv|I32 len|U32 hash
-XEp    |void   |unshare_hek    |NULLOK HEK* hek
+p      |void   |unshare_hek    |NULLOK HEK* hek
 #ifdef PERL_MAD
 p      |OP *   |utilize        |int aver|I32 floor|NULLOK OP* version \
                                |NN OP* idop|NULLOK OP* arg
@@ -949,7 +952,7 @@ Ap  |U8*    |uvchr_to_utf8_flags    |NN U8 *d|UV uv|UV flags
 Apd    |U8*    |uvuni_to_utf8_flags    |NN U8 *d|UV uv|UV flags
 Apd    |char*  |pv_uni_display |NN SV *dsv|NN const U8 *spv|STRLEN len|STRLEN pvlim|UV flags
 ApdR   |char*  |sv_uni_display |NN SV *dsv|NN SV *ssv|STRLEN pvlim|UV flags
-p      |void   |vivify_defelem |NN SV* sv
+EXp    |void   |vivify_defelem |NN SV* sv
 p      |void   |vivify_ref     |NN SV* sv|U32 to_what
 p      |I32    |wait4pid       |Pid_t pid|NN int* statusp|int flags
 p      |U32    |parse_unicode_opts|NN const char **popt
@@ -965,7 +968,7 @@ p   |void   |watch          |NN char** addr
 Ap     |I32    |whichsig       |NN const char* sig
 p      |void   |write_to_stderr|NN const char* message|int msglen
 p      |int    |yyerror        |NN const char* s
-p      |int    |yylex
+EXp    |int    |yylex
 p      |int    |yyparse
 p      |void   |parser_free    |NN const yy_parser *
 p      |int    |yywarn         |NN const char* s
@@ -1172,6 +1175,7 @@ pR        |OP*    |ck_match       |NN OP *o
 pR     |OP*    |ck_method      |NN OP *o
 pR     |OP*    |ck_null        |NN OP *o
 pR     |OP*    |ck_open        |NN OP *o
+pR     |OP*    |ck_readline    |NN OP *o
 pR     |OP*    |ck_repeat      |NN OP *o
 pR     |OP*    |ck_require     |NN OP *o
 pR     |OP*    |ck_retarget    |NN OP *o
@@ -1191,6 +1195,8 @@ pR        |OP*    |ck_trunc       |NN OP *o
 pR     |OP*    |ck_unpack      |NN OP *o
 sRn    |bool   |is_handle_constructor|NN const OP *o|I32 numargs
 sR     |I32    |is_list_assignment|NULLOK const OP *o
+s      |void   |forget_pmop    |NN PMOP *const o|U32 flags
+s      |void   |find_and_forget_pmops  |NN OP *o
 s      |void   |cop_free       |NN COP *cop
 s      |OP*    |modkids        |NULLOK OP *o|I32 type
 s      |OP*    |scalarboolean  |NN OP *o
@@ -1217,8 +1223,14 @@ s        |void   |process_special_blocks |NN const char *const fullname\
                                        |NN GV *const gv|NN CV *const cv
 #endif
 #if defined(PL_OP_SLAB_ALLOC)
-Apa    |void*  |Slab_Alloc     |int m|size_t sz
+Apa    |void*  |Slab_Alloc     |size_t sz
 Ap     |void   |Slab_Free      |NN void *op
+#  if defined(PERL_DEBUG_READONLY_OPS)
+poxM   |void   |pending_Slabs_to_ro
+#    if defined(PERL_IN_OP_C)
+s      |void   |Slab_to_rw     |NN void *op
+#    endif
+#  endif
 #endif
 
 #if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
@@ -1837,6 +1849,9 @@ Mp        |int    |madparse
 AMdnoP |int    |Perl_signbit   |NV f
 #endif
 
+XEMop  |void   |emulate_cop_io |NN const COP *const c|NN SV *const sv
+XEMop  |regexp *|get_re_arg|NULLOK SV *sv|U32 flags|NULLOK MAGIC **mgp
+
 END_EXTERN_C
 /*
  * ex: set ts=8 sts=4 sw=4 noet: