From 0b19d81a098d6a9b895996d374ca0adc621f1590 Mon Sep 17 00:00:00 2001 From: Father Chrysostomos Date: Sun, 21 Aug 2011 17:27:58 -0700 Subject: [PATCH] Add OPpCOREARGS_PUSHMARK flag This will be used to tell pp_coreargs when it needs to call pp_pushmark. For those functions that need a pushmark, it has to come between two things that pp_coreargs does; so the easiest way is to use this flag. --- ext/B/B/Concise.pm | 2 +- op.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ext/B/B/Concise.pm b/ext/B/B/Concise.pm index cc0e052..2b806b7 100644 --- a/ext/B/B/Concise.pm +++ b/ext/B/B/Concise.pm @@ -661,7 +661,7 @@ if ($] >= 5.009) { for ("mapwhile", "mapstart", "grepwhile", "grepstart"); } $priv{$_}{128} = '+1' for qw "caller wantarray"; -@{$priv{coreargs}}{1,2} = ('DREF1','DREF2'); +@{$priv{coreargs}}{1,2,128} = ('DREF1','DREF2','MARK'); our %hints; # used to display each COP's op_hints values diff --git a/op.h b/op.h index 6dcbbf0..0d970ca 100644 --- a/op.h +++ b/op.h @@ -301,6 +301,7 @@ Deprecated. Use C instead. /* These must not conflict with OPpDONT_INIT_GV. See pp.c:S_rv2gv. */ #define OPpCOREARGS_DEREF1 1 /* Arg 1 is a handle constructor */ #define OPpCOREARGS_DEREF2 2 /* Arg 2 is a handle constructor */ +#define OPpCOREARGS_PUSHMARK 128 /* Call pp_pushmark */ struct op { BASEOP -- 2.7.4