This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
regcomp.c: Refactor one area to use common subroutine
[perl5.git] / pp.h
diff --git a/pp.h b/pp.h
index 3623a38..a7e936c 100644 (file)
--- a/pp.h
+++ b/pp.h
@@ -57,9 +57,10 @@ Refetch the stack pointer.  Used after a callback.  See L<perlcall>.
 
 #define PUSHMARK(p)    \
        STMT_START {                                    \
-           if (UNLIKELY(++PL_markstack_ptr == PL_markstack_max))       \
-           markstack_grow();                           \
-           *PL_markstack_ptr = (I32)((p) - PL_stack_base);\
+           I32 * mark_stack_entry;                     \
+           if (UNLIKELY((mark_stack_entry = ++PL_markstack_ptr) == PL_markstack_max))  \
+           mark_stack_entry = markstack_grow();                                        \
+           *mark_stack_entry  = (I32)((p) - PL_stack_base);                            \
        } STMT_END
 
 #define TOPMARK                (*PL_markstack_ptr)