X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Findirect.git;a=blobdiff_plain;f=indirect.xs;h=7f234a09037e04a72ab23c8a5f849713247c0f99;hp=4ce10e59ce0dc8fae193abf93f0f81aa471bc3ba;hb=ce2df2b3143e49d1d1531f6f76e270b973dffad2;hpb=ec48b957f1ab41d61e97f77b104a5b41f616af32 diff --git a/indirect.xs b/indirect.xs index 4ce10e5..7f234a0 100644 --- a/indirect.xs +++ b/indirect.xs @@ -62,12 +62,6 @@ #define I_HAS_PERL(R, V, S) (PERL_REVISION > (R) || (PERL_REVISION == (R) && (PERL_VERSION > (V) || (PERL_VERSION == (V) && (PERL_SUBVERSION >= (S)))))) #if I_HAS_PERL(5, 10, 0) || defined(PL_parser) -# ifndef PL_lex_inwhat -# define PL_lex_inwhat PL_parser->lex_inwhat -# endif -# ifndef PL_linestr -# define PL_linestr PL_parser->linestr -# endif # ifndef PL_bufptr # define PL_bufptr PL_parser->bufptr # endif @@ -75,12 +69,6 @@ # define PL_oldbufptr PL_parser->oldbufptr # endif #else -# ifndef PL_lex_inwhat -# define PL_lex_inwhat PL_Ilex_inwhat -# endif -# ifndef PL_linestr -# define PL_linestr PL_Ilinestr -# endif # ifndef PL_bufptr # define PL_bufptr PL_Ibufptr # endif @@ -212,11 +200,10 @@ typedef struct { typedef struct { #if I_THREADSAFE - ptable *tbl; /* It really is a ptable_hints */ - tTHX owner; + ptable *tbl; /* It really is a ptable_hints */ + tTHX owner; #endif - ptable *map; - const char *linestr; + ptable *map; } my_cxt_t; START_MY_CXT @@ -422,18 +409,6 @@ STATIC void indirect_map_store(pTHX_ const OP *o, const char *src, SV *sv, line_ STRLEN len; dMY_CXT; - /* When lex_inwhat is set, we're in a quotelike environment (qq, qr, but not q) - * In this case the linestr has temporarly changed, but the old buffer should - * still be alive somewhere. */ - - if (!PL_lex_inwhat) { - const char *pl_linestr = SvPVX_const(PL_linestr); - if (MY_CXT.linestr != pl_linestr) { - ptable_clear(MY_CXT.map); - MY_CXT.linestr = pl_linestr; - } - } - if (!(oi = ptable_fetch(MY_CXT.map, o))) { Newx(oi, 1, indirect_op_info_t); ptable_store(MY_CXT.map, o, oi); @@ -464,9 +439,6 @@ STATIC const indirect_op_info_t *indirect_map_fetch(pTHX_ const OP *o) { #define indirect_map_fetch(O) indirect_map_fetch(aTHX_ (O)) dMY_CXT; - if (MY_CXT.linestr != SvPVX_const(PL_linestr)) - return NULL; - return ptable_fetch(MY_CXT.map, o); } @@ -827,11 +799,10 @@ STATIC void indirect_setup(pTHX) { { MY_CXT_INIT; #if I_THREADSAFE - MY_CXT.tbl = ptable_new(); - MY_CXT.owner = aTHX; + MY_CXT.tbl = ptable_new(); + MY_CXT.owner = aTHX; #endif - MY_CXT.map = ptable_new(); - MY_CXT.linestr = NULL; + MY_CXT.map = ptable_new(); } indirect_old_ck_const = PL_check[OP_CONST]; @@ -899,10 +870,9 @@ PPCODE: } { MY_CXT_CLONE; - MY_CXT.map = ptable_new(); - MY_CXT.linestr = NULL; - MY_CXT.tbl = t; - MY_CXT.owner = aTHX; + MY_CXT.map = ptable_new(); + MY_CXT.tbl = t; + MY_CXT.owner = aTHX; } reap(3, indirect_thread_cleanup, NULL); XSRETURN(0);