X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Fre-engine-Plugin.git;a=blobdiff_plain;f=Plugin.h;h=aad712e62a421ac2660d2f4a7cbbb6369ae031e8;hp=109854ad2d518be15f5a45cbb9777247cd3d7bc1;hb=8841074697e50dc9be0faf100e25e540968a2d9a;hpb=06641849094f807d8762e328b5077e54b299f5e2 diff --git a/Plugin.h b/Plugin.h index 109854a..aad712e 100644 --- a/Plugin.h +++ b/Plugin.h @@ -4,10 +4,10 @@ /* re__engine__Plugin self; SELF_FROM_PPRIVATE(self,rx->pprivate) */ #define SELF_FROM_PPRIVATE(self, pprivate) \ - if (sv_isobject(pprivate)) { \ + if (sv_isobject(pprivate)) { \ SV * ref = SvRV((SV*)pprivate); \ - IV tmp = SvIV((SV*)ref); \ - self = INT2PTR(re__engine__Plugin,tmp); \ + IV tmp = SvIV((SV*)ref); \ + self = INT2PTR(re__engine__Plugin,tmp); \ } else { \ Perl_croak(aTHX_ "Not an object"); \ } @@ -25,6 +25,7 @@ EXTERN_C char * Plugin_intuit(pTHX_ REGEXP * const, SV *, char *, char *, U32, re_scream_pos_data *); EXTERN_C SV * Plugin_checkstr(pTHX_ REGEXP * const); EXTERN_C void Plugin_free(pTHX_ REGEXP * const); +EXTERN_C void * Plugin_dupe(pTHX_ REGEXP * const, CLONE_PARAMS *); EXTERN_C void Plugin_numbered_buff_FETCH(pTHX_ REGEXP * const, const I32, SV * const); EXTERN_C void Plugin_numbered_buff_STORE(pTHX_ REGEXP * const, @@ -58,7 +59,7 @@ const regexp_engine engine_plugin = { Plugin_named_buff, Plugin_named_buff_iter, Plugin_package, -#if defined(USE_ITHREADS) +#if defined(USE_ITHREADS) Plugin_dupe, #endif }; @@ -77,10 +78,8 @@ typedef struct replug { /* The ->stash */ SV * stash; - /* - * Callbacks - */ - + /* Callbacks */ + SV * cb_exec; SV * cb_free; /* ->num_captures */