summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--XSUB.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/XSUB.h b/XSUB.h
index dbe0c3985b..32e081005e 100644
--- a/XSUB.h
+++ b/XSUB.h
@@ -29,10 +29,13 @@
#define XSINTERFACE_FUNC_SET(cv,f) \
CvXSUBANY(cv).any_dptr = (void (*) _((void*)))(f)
-#define XSRETURN(off) \
- STMT_START { \
- PL_stack_sp = PL_stack_base + ax + ((off) - 1); \
- return; \
+#define XSFLUSHARGS \
+ PL_stack_sp = PL_stack_base + ax + ((off) - 1)
+
+#define XSRETURN(off) \
+ STMT_START { \
+ XSFLUSHARGS; \
+ return; \
} STMT_END
/* Simple macros to put new mortal values onto the stack. */