X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=Hooks.xs;h=6fb127e2045aa33a55e446ff01d3a0e30b950d08;hb=b9ea55a3bbc0e8d6035c10f06d2ec6a9e18b0462;hp=99e81d303a358a01e8ff89e046efdbe0b6eed091;hpb=7e26eccae62009c864f2a93d55b0889b82a7540e;p=perl%2Fmodules%2Fre-engine-Hooks.git diff --git a/Hooks.xs b/Hooks.xs index 99e81d3..6fb127e 100644 --- a/Hooks.xs +++ b/Hooks.xs @@ -143,8 +143,9 @@ EXTERN_C SV * reh_reg_qr_package(pTHX_ REGEXP * const); EXTERN_C void * reh_regdupe(pTHX_ REGEXP * const, CLONE_PARAMS *); EXTERN_C void * reh_re_dupe(pTHX_ REGEXP * const, CLONE_PARAMS *); #endif - -EXTERN_C const struct regexp_engine reh_regexp_engine; +#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); +#endif const struct regexp_engine reh_regexp_engine = { reh_regcomp, @@ -157,9 +158,12 @@ const struct regexp_engine reh_regexp_engine = { reh_reg_numbered_buff_length, reh_reg_named_buff, reh_reg_named_buff_iter, - reh_reg_qr_package, + reh_reg_qr_package #if defined(USE_ITHREADS) - reh_re_dupe + , reh_re_dupe +#endif +#if REH_HAS_PERL(5, 17, 1) + , reh_op_compile #endif }; @@ -220,7 +224,7 @@ STATIC perl_mutex reh_private_map_mutex; REH_UNLOCK(&reh_private_map_mutex); \ } STMT_END -STATIC reh_private *reh_private_map_store(pTHX_ void *ri, reh_private *priv) { +STATIC void reh_private_map_store(pTHX_ void *ri, reh_private *priv) { #define reh_private_map_store(R, P) reh_private_map_store(aTHX_ (R), (P)) REH_LOCK(&reh_private_map_mutex); ptable_private_store(reh_private_map, ri, priv);