]> git.vpit.fr Git - perl/modules/indirect.git/commitdiff
Remove ck_leave()
authorVincent Pit <vince@profvince.com>
Tue, 14 Jul 2009 16:17:09 +0000 (18:17 +0200)
committerVincent Pit <vince@profvince.com>
Tue, 14 Jul 2009 16:17:09 +0000 (18:17 +0200)
We don't need to clean the map entries for leave ops because they can only be created by mutating from a lineseq.

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);