1 /* $RCSfile: cv.h,v $$Revision: 4.1 $$Date: 92/08/07 18:26:42 $
3 * Copyright (c) 1991, Larry Wall
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.
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 */
27 long xcv_depth; /* >= 2 indicates recursive call */
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
37 #define CvGV(sv) ((XPVCV*)SvANY(sv))->xcv_gv
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