summaryrefslogtreecommitdiff
path: root/cop.h
diff options
context:
space:
mode:
Diffstat (limited to 'cop.h')
-rw-r--r--cop.h7
1 files changed, 2 insertions, 5 deletions
diff --git a/cop.h b/cop.h
index 543c039f85..9728962312 100644
--- a/cop.h
+++ b/cop.h
@@ -48,15 +48,12 @@ struct block_sub {
#define POPSUB(cx) \
if (cx->blk_sub.hasargs) { /* put back old @_ */ \
+ SvREFCNT_dec(GvAV(defgv)); \
GvAV(defgv) = cx->blk_sub.savearray; \
} \
if (cx->blk_sub.cv) { \
- if (!(CvDEPTH(cx->blk_sub.cv) = cx->blk_sub.olddepth)) { \
- if (cx->blk_sub.hasargs) { \
- SvREFCNT_inc((SV*)cx->blk_sub.argarray); \
- } \
+ if (!(CvDEPTH(cx->blk_sub.cv) = cx->blk_sub.olddepth)) \
SvREFCNT_dec((SV*)cx->blk_sub.cv); \
- } \
}
#define POPFORMAT(cx) \