X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=cv.h;h=cb47c0ff076199bcf1ccf274332c990bfc9252c5;hb=9b488eb89e353c3569ec0fe5076be8c2a5f47436;hp=8591f6bb74abbf151d6a85b34a8115055c453c8d;hpb=ccfc67b7b0a9fa9e1a1cbb2090b71ea33fc44ae7;p=p5sagit%2Fp5-mst-13.2.git diff --git a/cv.h b/cv.h index 8591f6b..cb47c0f 100644 --- a/cv.h +++ b/cv.h @@ -1,6 +1,6 @@ /* cv.h * - * Copyright (c) 1991-2001, Larry Wall + * Copyright (c) 1991-2002, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -27,12 +27,8 @@ struct xpvcv { GV * xcv_gv; char * xcv_file; long xcv_depth; /* >= 2 indicates recursive call */ - AV * xcv_padlist; + PADLIST * xcv_padlist; CV * xcv_outside; -#ifdef USE_5005THREADS - perl_mutex *xcv_mutexp; - struct perl_thread *xcv_owner; /* current owner thread */ -#endif /* USE_5005THREADS */ cv_flags_t xcv_flags; }; @@ -68,10 +64,6 @@ Returns the stash of the CV. #define CvDEPTH(sv) ((XPVCV*)SvANY(sv))->xcv_depth #define CvPADLIST(sv) ((XPVCV*)SvANY(sv))->xcv_padlist #define CvOUTSIDE(sv) ((XPVCV*)SvANY(sv))->xcv_outside -#ifdef USE_5005THREADS -#define CvMUTEXP(sv) ((XPVCV*)SvANY(sv))->xcv_mutexp -#define CvOWNER(sv) ((XPVCV*)SvANY(sv))->xcv_owner -#endif /* USE_5005THREADS */ #define CvFLAGS(sv) ((XPVCV*)SvANY(sv))->xcv_flags #define CVf_CLONE 0x0001 /* anon CV uses external lexicals */ @@ -85,6 +77,8 @@ Returns the stash of the CV. #define CVf_LOCKED 0x0080 /* CV locks itself or first arg on entry */ #define CVf_LVALUE 0x0100 /* CV return value can be used as lvalue */ #define CVf_CONST 0x0200 /* inlinable sub */ +/* This symbol for optimised communication between toke.c and op.c: */ +#define CVf_BUILTIN_ATTRS (CVf_METHOD|CVf_LOCKED|CVf_LVALUE) #define CvCLONE(cv) (CvFLAGS(cv) & CVf_CLONE) #define CvCLONE_on(cv) (CvFLAGS(cv) |= CVf_CLONE) @@ -128,7 +122,7 @@ Returns the stash of the CV. #define CvEVAL_on(cv) (CvUNIQUE_on(cv),SvFAKE_off(cv)) #define CvEVAL_off(cv) CvUNIQUE_off(cv) -/* BEGIN|INIT|END */ +/* BEGIN|CHECK|INIT|END */ #define CvSPECIAL(cv) (CvUNIQUE(cv) && SvFAKE(cv)) #define CvSPECIAL_on(cv) (CvUNIQUE_on(cv),SvFAKE_on(cv)) #define CvSPECIAL_off(cv) (CvUNIQUE_off(cv),SvFAKE_off(cv)) @@ -136,3 +130,4 @@ Returns the stash of the CV. #define CvCONST(cv) (CvFLAGS(cv) & CVf_CONST) #define CvCONST_on(cv) (CvFLAGS(cv) |= CVf_CONST) #define CvCONST_off(cv) (CvFLAGS(cv) &= ~CVf_CONST) +