From: Nicholas Clark Date: Mon, 21 Jan 2008 11:50:52 +0000 (+0000) Subject: Give G_VOID, G_SCALAR and G_ARRAY the same numeric values as X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=2f8edad0d37e91319b6ba10b3745327ea49c179b;p=p5sagit%2Fp5-mst-13.2.git Give G_VOID, G_SCALAR and G_ARRAY the same numeric values as OPf_WANT_VOID, OPf_WANT_SCALAR and OPf_WANT_LIST. p4raw-id: //depot/perl@33025 --- diff --git a/cop.h b/cop.h index 641fb66..f41e67a 100644 --- a/cop.h +++ b/cop.h @@ -737,20 +737,20 @@ L. =cut */ -#define G_SCALAR 0 -#define G_ARRAY 1 -#define G_VOID 128 /* skip this bit when adding flags below */ -#define G_WANT (128|1) +#define G_SCALAR 2 +#define G_ARRAY 3 +#define G_VOID 1 +#define G_WANT 3 /* extra flags for Perl_call_* routines */ -#define G_DISCARD 2 /* Call FREETMPS. +#define G_DISCARD 4 /* Call FREETMPS. Don't change this without consulting the hash actions codes defined in hv.h */ -#define G_EVAL 4 /* Assume eval {} around subroutine call. */ -#define G_NOARGS 8 /* Don't construct a @_ array. */ -#define G_KEEPERR 16 /* Append errors to $@, don't overwrite it */ -#define G_NODEBUG 32 /* Disable debugging at toplevel. */ -#define G_METHOD 64 /* Calling method. */ +#define G_EVAL 8 /* Assume eval {} around subroutine call. */ +#define G_NOARGS 16 /* Don't construct a @_ array. */ +#define G_KEEPERR 32 /* Append errors to $@, don't overwrite it */ +#define G_NODEBUG 64 /* Disable debugging at toplevel. */ +#define G_METHOD 128 /* Calling method. */ #define G_FAKINGEVAL 256 /* Faking an eval context for call_sv or fold_constants. */ diff --git a/op.h b/op.h index fa1230d..63390ea 100644 --- a/op.h +++ b/op.h @@ -70,10 +70,7 @@ ((op)->op_flags & OPf_WANT) == OPf_WANT_LIST ? G_ARRAY : \ dfl) -#define OP_GIMME_REVERSE(flags) \ - ((flags & G_VOID) ? OPf_WANT_VOID : \ - (flags & G_ARRAY) ? OPf_WANT_LIST : \ - OPf_WANT_SCALAR) +#define OP_GIMME_REVERSE(flags) ((flags) & G_WANT) /* =head1 "Gimme" Values diff --git a/perl.c b/perl.c index 7dc6d14..907f9cf 100644 --- a/perl.c +++ b/perl.c @@ -2578,6 +2578,11 @@ Perl_call_sv(pTHX_ SV *sv, I32 flags) ENTER; SAVETMPS; } + if (!(flags & G_WANT)) { + /* Backwards compatibility - as G_SCALAR was 0, it could be omitted. + */ + flags |= G_SCALAR; + } Zero(&myop, 1, LOGOP); myop.op_next = NULL;