p4raw-id: //depot/perl@6216
#endif /* USE_THREADS */
/* junk in @_ spells trouble when cloning CVs and in pp_caller(), so don't
- * leave any */
-#define CLEAR_ARGARRAY() av_clear(cx->blk_sub.argarray)
+ * leave any (a fast av_clear(ary), basically) */
+#define CLEAR_ARGARRAY(ary) \
+ STMT_START { \
+ AvMAX(ary) += AvARRAY(ary) - AvALLOC(ary); \
+ SvPVX(ary) = (char*)AvALLOC(ary); \
+ AvFILLp(ary) = -1; \
+ } STMT_END
#define POPSUB(cx,sv) \
STMT_START { \
PL_curpad[0] = (SV*)cx->blk_sub.argarray; \
} \
else { \
- CLEAR_ARGARRAY(); \
+ CLEAR_ARGARRAY(cx->blk_sub.argarray); \
} \
} \
sv = (SV*)cx->blk_sub.cv; \