From 0b6c6e4e306c6b4830a1cc197230ebdbb1c92140 Mon Sep 17 00:00:00 2001 From: David Mitchell Date: Wed, 16 Nov 2022 10:30:10 +0000 Subject: don't call pp_pushmark() to push a mark A few places were calling pp_pushmark(), when they should have been just directly doing a PUSHMARK() --- pp.c | 3 +-- pp_ctl.c | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/pp.c b/pp.c index e2a70151b3..dd47b7330a 100644 --- a/pp.c +++ b/pp.c @@ -6748,8 +6748,7 @@ PP(pp_coreargs) to come in between two things this function does (stack reset and arg pushing). This seems the easiest way to do it. */ if (pushmark) { - PUTBACK; - (void)Perl_pp_pushmark(aTHX); + PUSHMARK(SP); } EXTEND(SP, maxargs == I32_MAX ? numargs : maxargs); diff --git a/pp_ctl.c b/pp_ctl.c index a7a0cea607..b16afcebcd 100644 --- a/pp_ctl.c +++ b/pp_ctl.c @@ -978,8 +978,8 @@ PP(pp_grepstart) RETURNOP(PL_op->op_next->op_next); } PL_stack_sp = PL_stack_base + TOPMARK + 1; - Perl_pp_pushmark(aTHX); /* push dst */ - Perl_pp_pushmark(aTHX); /* push src */ + PUSHMARK(PL_stack_sp); /* push dst */ + PUSHMARK(PL_stack_sp); /* push src */ ENTER_with_name("grep"); /* enter outer scope */ SAVETMPS; @@ -997,7 +997,7 @@ PP(pp_grepstart) PUTBACK; if (PL_op->op_type == OP_MAPSTART) - Perl_pp_pushmark(aTHX); /* push top */ + PUSHMARK(PL_stack_sp); /* push top */ return cLOGOPx(PL_op->op_next)->op_other; } -- cgit v1.2.1