X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Fre-engine-Hooks.git;a=blobdiff_plain;f=Hooks.xs;h=d23588011e6d1f808f9e74a792c84248a135756e;hp=6fb127e2045aa33a55e446ff01d3a0e30b950d08;hb=14ef35c15932a15f49f50b1c407d9d805e759ae3;hpb=44dec0ac3bf363473beef80bb3a150e0ef913f7a diff --git a/Hooks.xs b/Hooks.xs index 6fb127e..d235880 100644 --- a/Hooks.xs +++ b/Hooks.xs @@ -117,16 +117,13 @@ void reh_register(pTHX_ const char *key, reh_config *cfg) { #endif #if PERL_VERSION <= 10 -EXTERN_C REGEXP *reh_regcomp(pTHX_ const SV * const, const U32); +EXTERN_C REGEXP *reh_re_compile(pTHX_ const SV * const, const U32); #else -EXTERN_C REGEXP *reh_regcomp(pTHX_ SV * const, U32); +EXTERN_C REGEXP *reh_re_compile(pTHX_ SV * const, U32); #endif -EXTERN_C I32 reh_regexec(pTHX_ REGEXP * const, char *, char *, - char *, I32, SV *, void *, U32); -EXTERN_C char * reh_re_intuit_start(pTHX_ REGEXP * const, SV *, char *, - char *, U32, re_scream_pos_data *); +EXTERN_C I32 reh_regexec_flags(pTHX_ REGEXP * const, char *, char *, char *, I32, SV *, void *, U32); +EXTERN_C char * reh_re_intuit_start(pTHX_ REGEXP * const, SV *, char *, char *, U32, re_scream_pos_data *); EXTERN_C SV * reh_re_intuit_string(pTHX_ REGEXP * const); -EXTERN_C void reh_regfree(pTHX_ REGEXP * const); EXTERN_C void reh_re_free(pTHX_ REGEXP * const); EXTERN_C void reh_reg_numbered_buff_fetch(pTHX_ REGEXP * const, const I32, SV * const); @@ -140,16 +137,15 @@ EXTERN_C SV * reh_reg_named_buff_iter(pTHX_ REGEXP * const, const SV * const, const U32); EXTERN_C SV * reh_reg_qr_package(pTHX_ REGEXP * const); #ifdef USE_ITHREADS -EXTERN_C void * reh_regdupe(pTHX_ REGEXP * const, CLONE_PARAMS *); EXTERN_C void * reh_re_dupe(pTHX_ REGEXP * const, CLONE_PARAMS *); #endif #if REH_HAS_PERL(5, 17, 1) -EXTERN_C REGEXP *reh_op_compile(pTHX_ SV ** const patternp, int pat_count, OP *expr, const regexp_engine* eng, REGEXP *VOL old_re, bool *is_bare_re, U32 orig_rx_flags, U32 pm_flags); +EXTERN_C REGEXP *reh_re_op_compile(pTHX_ SV ** const, int, OP *, const regexp_engine*, REGEXP *VOL, bool *, U32, U32); #endif const struct regexp_engine reh_regexp_engine = { - reh_regcomp, - reh_regexec, + reh_re_compile, + reh_regexec_flags, reh_re_intuit_start, reh_re_intuit_string, reh_re_free, @@ -163,7 +159,7 @@ const struct regexp_engine reh_regexp_engine = { , reh_re_dupe #endif #if REH_HAS_PERL(5, 17, 1) - , reh_op_compile + , reh_re_op_compile #endif }; @@ -312,21 +308,25 @@ void reh_call_exec_node_hook(pTHX_ regexp *rx, regnode *node, regmatch_info *reg REH_PRIVATE_MAP_FOREACH(cbs->exec_node(aTHX_ rx, node, reginfo, st)); } +EXTERN_C void reh_regfree_internal(pTHX_ REGEXP * const); + void reh_re_free(pTHX_ REGEXP * const RX) { regexp *rx = rxREGEXP(RX); reh_private_map_delete(rx->pprivate); - reh_regfree(aTHX_ RX); + reh_regfree_internal(aTHX_ RX); } #ifdef USE_ITHREADS +EXTERN_C void *reh_regdupe_internal(pTHX_ REGEXP * const, CLONE_PARAMS *); + void *reh_re_dupe(pTHX_ REGEXP * const RX, CLONE_PARAMS *param) { regexp *rx = rxREGEXP(RX); void *new_ri; - new_ri = reh_regdupe(aTHX_ RX, param); + new_ri = reh_regdupe_internal(aTHX_ RX, param); reh_private_map_copy(rx->pprivate, new_ri);