]> git.vpit.fr Git - perl/modules/indirect.git/blobdiff - indirect.xs
Remove ck_leave()
[perl/modules/indirect.git] / indirect.xs
index 36585193fdfaedb6bed331987d7d42b84430df9a..57e78e1c315cce3273b2089a0909b28e401297a6 100644 (file)
@@ -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);