X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=op.h;h=304099bd8ff3bc2019c3b7d577a59574b55d3858;hb=d404d5bf6551eaa2e4c373a4e64d842d9d7ff9cc;hp=f3ef541f8084c21cd0d7355a06000c2fda654b94;hpb=748a93069b3d16374a9859d1456065dd3ae11394;p=p5sagit%2Fp5-mst-13.2.git diff --git a/op.h b/op.h index f3ef541..304099b 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. */ @@ -83,7 +83,8 @@ typedef U16 PADOFFSET; /* Private for OP_ENTERSUB, OP_RV2?V, OP_?ELEM */ /* (lower bits carry hints) */ -#define OPpDEREF_DB 16 /* Debug subroutine. */ +#define OPpENTERSUB_AMPER 8 /* Used & form to call. */ +#define OPpENTERSUB_DB 16 /* Debug subroutine. */ #define OPpDEREF_AV 32 /* Want ref to AV. */ #define OPpDEREF_HV 64 /* Want ref to HV. */ @@ -147,6 +148,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; }; @@ -182,12 +184,6 @@ struct pvop { char * op_pv; }; -struct cvop { - BASEOP - CV * op_cv; - OP * op_cont; -}; - struct loop { BASEOP OP * op_first; @@ -207,7 +203,6 @@ struct loop { #define cSVOP ((SVOP*)op) #define cGVOP ((GVOP*)op) #define cPVOP ((PVOP*)op) -#define cCVOP ((CVOP*)op) #define cCOP ((COP*)op) #define cLOOP ((LOOP*)op) @@ -220,7 +215,6 @@ struct loop { #define kSVOP ((SVOP*)kid) #define kGVOP ((GVOP*)kid) #define kPVOP ((PVOP*)kid) -#define kCVOP ((CVOP*)kid) #define kCOP ((COP*)kid) #define kLOOP ((LOOP*)kid)