X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=op.h;h=0b4fc28bfd1d3a91e064294abe3a76725cb58f87;hb=f70b6ff5dbae63778d9b1ac9a297c2d960e64cbf;hp=559f55c0fcad7c1c9b1df00f9f8ed29dad960450;hpb=a0d0e21ea6ea90a22318550944fe6cb09ae10cda;p=p5sagit%2Fp5-mst-13.2.git diff --git a/op.h b/op.h index 559f55c..0b4fc28 100644 --- a/op.h +++ b/op.h @@ -23,9 +23,9 @@ * which may or may not check number of children). */ -typedef U16 PADOFFSET; +typedef U32 PADOFFSET; -#ifdef DEBUGGING +#ifdef DEBUGGING_OPS #define OPCODE opcode #else #define OPCODE U16 @@ -41,7 +41,7 @@ typedef U16 PADOFFSET; U8 op_flags; \ U8 op_private; -#define GIMME (op->op_flags & OPf_KNOW ? op->op_flags & OPf_LIST : cxstack[cxstack_ix].blk_gimme & G_ARRAY) +#define GIMME (op->op_flags & OPf_KNOW ? op->op_flags & OPf_LIST : dowantarray()) /* Public flags */ #define OPf_LIST 1 /* Do operator in list context. */ @@ -88,6 +88,8 @@ typedef U16 PADOFFSET; #define OPpDEREF_HV 64 /* Want ref to HV. */ /* Private for OP_CONST */ +#define OPpCONST_ENTERED 16 /* Has been entered as symbol. */ +#define OPpCONST_ARYBASE 32 /* Was a $[ translated to constant. */ #define OPpCONST_BARE 64 /* Was a bare word (filehandle?). */ /* Private for OP_FLIP/FLOP */ @@ -145,6 +147,7 @@ struct pmop { REGEXP * op_pmregexp; /* compiled expression */ SV * op_pmshort; /* for a fast bypass of execute() */ U16 op_pmflags; + U16 op_pmpermflags; char op_pmslen; };