This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl 5.0 alpha 9
[perl5.git] / cv.h
CommitLineData
79072805
LW
1/* $RCSfile: cv.h,v $$Revision: 4.1 $$Date: 92/08/07 18:26:42 $
2 *
3 * Copyright (c) 1991, Larry Wall
4 *
5 * You may distribute under the terms of either the GNU General Public
6 * License or the Artistic License, as specified in the README file.
7 *
8 * $Log: cv.h,v $
9 */
10
11struct xpvcv {
12 char * xpv_pv; /* pointer to malloced string */
13 STRLEN xpv_cur; /* length of xp_pv as a C string */
14 STRLEN xpv_len; /* allocated size */
15 STRLEN xof_off; /* ptr is incremented by offset */
16 double xnv_nv; /* numeric value, if any */
17 MAGIC* xmg_magic; /* magic for scalar array */
18 HV* xmg_stash; /* class package */
19
20 HV * xcv_stash;
21 OP * xcv_start;
22 OP * xcv_root;
23 I32 (*xcv_usersub)();
24 I32 xcv_userindex;
8990e307 25 GV * xcv_gv;
79072805
LW
26 GV * xcv_filegv;
27 long xcv_depth; /* >= 2 indicates recursive call */
28 AV * xcv_padlist;
29 bool xcv_deleted;
30};
31#define Nullcv Null(CV*)
32#define CvSTASH(sv) ((XPVCV*)SvANY(sv))->xcv_stash
33#define CvSTART(sv) ((XPVCV*)SvANY(sv))->xcv_start
34#define CvROOT(sv) ((XPVCV*)SvANY(sv))->xcv_root
35#define CvUSERSUB(sv) ((XPVCV*)SvANY(sv))->xcv_usersub
36#define CvUSERINDEX(sv) ((XPVCV*)SvANY(sv))->xcv_userindex
8990e307 37#define CvGV(sv) ((XPVCV*)SvANY(sv))->xcv_gv
79072805
LW
38#define CvFILEGV(sv) ((XPVCV*)SvANY(sv))->xcv_filegv
39#define CvDEPTH(sv) ((XPVCV*)SvANY(sv))->xcv_depth
40#define CvPADLIST(sv) ((XPVCV*)SvANY(sv))->xcv_padlist
41#define CvDELETED(sv) ((XPVCV*)SvANY(sv))->xcv_deleted
42