X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=indirect.xs;h=57e78e1c315cce3273b2089a0909b28e401297a6;hb=3073451bb3c0e963ca447441f101f00c29f50f03;hp=36585193fdfaedb6bed331987d7d42b84430df9a;hpb=ff16be2f69592b80dfcbc397b37dd4ea070b9d62;p=perl%2Fmodules%2Findirect.git diff --git a/indirect.xs b/indirect.xs index 3658519..57e78e1 100644 --- a/indirect.xs +++ b/indirect.xs @@ -600,17 +600,8 @@ STATIC OP *indirect_ck_scope(pTHX_ OP *o) { return o; } -/* ... ck_leave ............................................................ */ - -STATIC OP *(*indirect_old_ck_leave)(pTHX_ OP *) = 0; - -STATIC OP *indirect_ck_leave(pTHX_ OP *o) { - o = CALL_FPTR(indirect_old_ck_leave)(aTHX_ o); - - /* Cleanup relevant entries in case ck_method catches them later. */ - indirect_map_delete(o); - return o; -} +/* We don't need to clean the map entries for leave ops because they can only + * be created by mutating from a lineseq. */ /* ... ck_method ........................................................... */ @@ -780,8 +771,6 @@ BOOT: PL_check[OP_SCOPE] = MEMBER_TO_FPTR(indirect_ck_scope); indirect_old_ck_lineseq = PL_check[OP_LINESEQ]; PL_check[OP_LINESEQ] = MEMBER_TO_FPTR(indirect_ck_scope); - indirect_old_ck_leave = PL_check[OP_LEAVE]; - PL_check[OP_LEAVE] = MEMBER_TO_FPTR(indirect_ck_leave); indirect_old_ck_method = PL_check[OP_METHOD]; PL_check[OP_METHOD] = MEMBER_TO_FPTR(indirect_ck_method);