cvs commit: ponie/perl/pod perlapi.pod
[email protected] (Nicholas Clark) 10 Mar 2004 23:07:23 -0000
| Newsgroups | perl.ponie.changes |
|---|---|
| Message-ID | <[email protected]> |
cvsuser 04/03/10 15:07:23
Modified: perl embed.fnc embed.h global.sym proto.h sv.c sv.h
perl/pod perlapi.pod
Log:
Wrappers for RVs, IOs, Formats and BM scalars
Revision Changes Path
1.14 +23 -0 ponie/perl/embed.fnc
Index: embed.fnc
===================================================================
RCS file: /cvs/public/ponie/perl/embed.fnc,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -w -r1.13 -r1.14
--- embed.fnc 4 Mar 2004 12:10:16 -0000 1.13
+++ embed.fnc 10 Mar 2004 23:07:23 -0000 1.14
@@ -997,6 +997,29 @@
Ap |SV** |macro_LvTARG |SV *
Ap |STRLEN* |macro_LvTARGLEN |SV *
Ap |STRLEN* |macro_LvTARGOFF |SV *
+Ap |SV** |macro_SvRV |SV *
+Ap |U8* |macro_BmRARE |SV *
+Ap |I32* |macro_BmUSEFUL |SV *
+Ap |U16* |macro_BmPREVIOUS |SV *
+Ap |IV* |macro_FmLINES |SV *
+Ap |PerlIO** |macro_IoIFP |SV *
+Ap |PerlIO** |macro_IoOFP |SV *
+Ap |DIR** |macro_IoDIRP |SV *
+Ap |void** |macro_IoANY |SV *
+Ap |IV* |macro_IoLINES |SV *
+Ap |IV* |macro_IoPAGE |SV *
+Ap |IV* |macro_IoPAGE_LEN |SV *
+Ap |IV* |macro_IoLINES_LEFT |SV *
+Ap |char** |macro_IoTOP_NAME |SV *
+Ap |GV ** |macro_IoTOP_GV |SV *
+Ap |char** |macro_IoFMT_NAME |SV *
+Ap |GV** |macro_IoFMT_GV |SV *
+Ap |char** |macro_IoBOTTOM_NAME |SV *
+Ap |GV** |macro_IoBOTTOM_GV |SV *
+Ap |short* |macro_IoSUBPROCESS |SV *
+Ap |char* |macro_IoTYPE |SV *
+Ap |char* |macro_IoFLAGS |SV *
+
END_EXTERN_C
1.11 +44 -0 ponie/perl/embed.h
Index: embed.h
===================================================================
RCS file: /cvs/public/ponie/perl/embed.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -w -r1.10 -r1.11
--- embed.h 29 Feb 2004 18:02:19 -0000 1.10
+++ embed.h 10 Mar 2004 23:07:23 -0000 1.11
@@ -1283,6 +1283,28 @@
#define macro_LvTARG Perl_macro_LvTARG
#define macro_LvTARGLEN Perl_macro_LvTARGLEN
#define macro_LvTARGOFF Perl_macro_LvTARGOFF
+#define macro_SvRV Perl_macro_SvRV
+#define macro_BmRARE Perl_macro_BmRARE
+#define macro_BmUSEFUL Perl_macro_BmUSEFUL
+#define macro_BmPREVIOUS Perl_macro_BmPREVIOUS
+#define macro_FmLINES Perl_macro_FmLINES
+#define macro_IoIFP Perl_macro_IoIFP
+#define macro_IoOFP Perl_macro_IoOFP
+#define macro_IoDIRP Perl_macro_IoDIRP
+#define macro_IoANY Perl_macro_IoANY
+#define macro_IoLINES Perl_macro_IoLINES
+#define macro_IoPAGE Perl_macro_IoPAGE
+#define macro_IoPAGE_LEN Perl_macro_IoPAGE_LEN
+#define macro_IoLINES_LEFT Perl_macro_IoLINES_LEFT
+#define macro_IoTOP_NAME Perl_macro_IoTOP_NAME
+#define macro_IoTOP_GV Perl_macro_IoTOP_GV
+#define macro_IoFMT_NAME Perl_macro_IoFMT_NAME
+#define macro_IoFMT_GV Perl_macro_IoFMT_GV
+#define macro_IoBOTTOM_NAME Perl_macro_IoBOTTOM_NAME
+#define macro_IoBOTTOM_GV Perl_macro_IoBOTTOM_GV
+#define macro_IoSUBPROCESS Perl_macro_IoSUBPROCESS
+#define macro_IoTYPE Perl_macro_IoTYPE
+#define macro_IoFLAGS Perl_macro_IoFLAGS
#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
#ifdef PERL_CORE
#define do_trans_simple S_do_trans_simple
@@ -3793,6 +3815,28 @@
#define macro_LvTARG(a) Perl_macro_LvTARG(aTHX_ a)
#define macro_LvTARGLEN(a) Perl_macro_LvTARGLEN(aTHX_ a)
#define macro_LvTARGOFF(a) Perl_macro_LvTARGOFF(aTHX_ a)
+#define macro_SvRV(a) Perl_macro_SvRV(aTHX_ a)
+#define macro_BmRARE(a) Perl_macro_BmRARE(aTHX_ a)
+#define macro_BmUSEFUL(a) Perl_macro_BmUSEFUL(aTHX_ a)
+#define macro_BmPREVIOUS(a) Perl_macro_BmPREVIOUS(aTHX_ a)
+#define macro_FmLINES(a) Perl_macro_FmLINES(aTHX_ a)
+#define macro_IoIFP(a) Perl_macro_IoIFP(aTHX_ a)
+#define macro_IoOFP(a) Perl_macro_IoOFP(aTHX_ a)
+#define macro_IoDIRP(a) Perl_macro_IoDIRP(aTHX_ a)
+#define macro_IoANY(a) Perl_macro_IoANY(aTHX_ a)
+#define macro_IoLINES(a) Perl_macro_IoLINES(aTHX_ a)
+#define macro_IoPAGE(a) Perl_macro_IoPAGE(aTHX_ a)
+#define macro_IoPAGE_LEN(a) Perl_macro_IoPAGE_LEN(aTHX_ a)
+#define macro_IoLINES_LEFT(a) Perl_macro_IoLINES_LEFT(aTHX_ a)
+#define macro_IoTOP_NAME(a) Perl_macro_IoTOP_NAME(aTHX_ a)
+#define macro_IoTOP_GV(a) Perl_macro_IoTOP_GV(aTHX_ a)
+#define macro_IoFMT_NAME(a) Perl_macro_IoFMT_NAME(aTHX_ a)
+#define macro_IoFMT_GV(a) Perl_macro_IoFMT_GV(aTHX_ a)
+#define macro_IoBOTTOM_NAME(a) Perl_macro_IoBOTTOM_NAME(aTHX_ a)
+#define macro_IoBOTTOM_GV(a) Perl_macro_IoBOTTOM_GV(aTHX_ a)
+#define macro_IoSUBPROCESS(a) Perl_macro_IoSUBPROCESS(aTHX_ a)
+#define macro_IoTYPE(a) Perl_macro_IoTYPE(aTHX_ a)
+#define macro_IoFLAGS(a) Perl_macro_IoFLAGS(aTHX_ a)
#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
#ifdef PERL_CORE
#define do_trans_simple(a) S_do_trans_simple(aTHX_ a)
1.11 +22 -0 ponie/perl/global.sym
Index: global.sym
===================================================================
RCS file: /cvs/public/ponie/perl/global.sym,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -w -r1.10 -r1.11
--- global.sym 29 Feb 2004 18:02:19 -0000 1.10
+++ global.sym 10 Mar 2004 23:07:23 -0000 1.11
@@ -656,6 +656,28 @@
Perl_macro_LvTARG
Perl_macro_LvTARGLEN
Perl_macro_LvTARGOFF
+Perl_macro_SvRV
+Perl_macro_BmRARE
+Perl_macro_BmUSEFUL
+Perl_macro_BmPREVIOUS
+Perl_macro_FmLINES
+Perl_macro_IoIFP
+Perl_macro_IoOFP
+Perl_macro_IoDIRP
+Perl_macro_IoANY
+Perl_macro_IoLINES
+Perl_macro_IoPAGE
+Perl_macro_IoPAGE_LEN
+Perl_macro_IoLINES_LEFT
+Perl_macro_IoTOP_NAME
+Perl_macro_IoTOP_GV
+Perl_macro_IoFMT_NAME
+Perl_macro_IoFMT_GV
+Perl_macro_IoBOTTOM_NAME
+Perl_macro_IoBOTTOM_GV
+Perl_macro_IoSUBPROCESS
+Perl_macro_IoTYPE
+Perl_macro_IoFLAGS
Perl_Slab_Alloc
Perl_Slab_Free
Perl_sv_setsv_flags
1.14 +23 -0 ponie/perl/proto.h
Index: proto.h
===================================================================
RCS file: /cvs/public/ponie/perl/proto.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -w -r1.13 -r1.14
--- proto.h 4 Mar 2004 12:10:16 -0000 1.13
+++ proto.h 10 Mar 2004 23:07:23 -0000 1.14
@@ -955,6 +955,29 @@
PERL_CALLCONV SV** Perl_macro_LvTARG(pTHX_ SV *);
PERL_CALLCONV STRLEN* Perl_macro_LvTARGLEN(pTHX_ SV *);
PERL_CALLCONV STRLEN* Perl_macro_LvTARGOFF(pTHX_ SV *);
+PERL_CALLCONV SV** Perl_macro_SvRV(pTHX_ SV *);
+PERL_CALLCONV U8* Perl_macro_BmRARE(pTHX_ SV *);
+PERL_CALLCONV I32* Perl_macro_BmUSEFUL(pTHX_ SV *);
+PERL_CALLCONV U16* Perl_macro_BmPREVIOUS(pTHX_ SV *);
+PERL_CALLCONV IV* Perl_macro_FmLINES(pTHX_ SV *);
+PERL_CALLCONV PerlIO** Perl_macro_IoIFP(pTHX_ SV *);
+PERL_CALLCONV PerlIO** Perl_macro_IoOFP(pTHX_ SV *);
+PERL_CALLCONV DIR** Perl_macro_IoDIRP(pTHX_ SV *);
+PERL_CALLCONV void** Perl_macro_IoANY(pTHX_ SV *);
+PERL_CALLCONV IV* Perl_macro_IoLINES(pTHX_ SV *);
+PERL_CALLCONV IV* Perl_macro_IoPAGE(pTHX_ SV *);
+PERL_CALLCONV IV* Perl_macro_IoPAGE_LEN(pTHX_ SV *);
+PERL_CALLCONV IV* Perl_macro_IoLINES_LEFT(pTHX_ SV *);
+PERL_CALLCONV char** Perl_macro_IoTOP_NAME(pTHX_ SV *);
+PERL_CALLCONV GV ** Perl_macro_IoTOP_GV(pTHX_ SV *);
+PERL_CALLCONV char** Perl_macro_IoFMT_NAME(pTHX_ SV *);
+PERL_CALLCONV GV** Perl_macro_IoFMT_GV(pTHX_ SV *);
+PERL_CALLCONV char** Perl_macro_IoBOTTOM_NAME(pTHX_ SV *);
+PERL_CALLCONV GV** Perl_macro_IoBOTTOM_GV(pTHX_ SV *);
+PERL_CALLCONV short* Perl_macro_IoSUBPROCESS(pTHX_ SV *);
+PERL_CALLCONV char* Perl_macro_IoTYPE(pTHX_ SV *);
+PERL_CALLCONV char* Perl_macro_IoFLAGS(pTHX_ SV *);
+
END_EXTERN_C
1.16 +182 -1 ponie/perl/sv.c
Index: sv.c
===================================================================
RCS file: /cvs/public/ponie/perl/sv.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -w -r1.15 -r1.16
--- sv.c 2 Mar 2004 13:00:21 -0000 1.15
+++ sv.c 10 Mar 2004 23:07:23 -0000 1.16
@@ -1288,6 +1288,17 @@
return &((XPVMG*)SvANY(sv))->xmg_stash;
}
+
+SV** Perl_macro_SvRV (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XRV* data = (XRV*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xrv_rv);
+ }
+ return &((XRV*)SvANY(sv))->xrv_rv;
+}
+
+
+
UV* Perl_macro_SvUVX (pTHX_ SV *sv) {
if(SvPMC(sv)) {
XPVUV* data = (XPVUV*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
@@ -1339,7 +1350,39 @@
return &(data->xpv_cur);
}
return &((XPV*)SvANY(sv))->xpv_cur;
+}
+
+
+U8* Perl_macro_BmRARE (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVBM* data = (XPVBM*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xbm_rare);
+ }
+ return &((XPVBM*)SvANY(sv))->xbm_rare;
+}
+
+I32* Perl_macro_BmUSEFUL (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVBM* data = (XPVBM*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xbm_useful);
+ }
+ return &((XPVBM*)SvANY(sv))->xbm_useful;
+}
+
+U16* Perl_macro_BmPREVIOUS (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVBM* data = (XPVBM*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xbm_previous);
+ }
+ return &((XPVBM*)SvANY(sv))->xbm_previous;
+}
+IV* Perl_macro_FmLINES (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVFM* data = (XPVFM*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xfm_lines);
+ }
+ return &((XPVFM*)SvANY(sv))->xfm_lines;
}
char* Perl_macro_LvTYPE (pTHX_ SV* sv) {
@@ -1373,6 +1416,144 @@
data = (XPVLV*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
return &(data->xlv_targlen);
}
+
+PerlIO** Perl_macro_IoIFP (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVIO* data = (XPVIO*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xio_ifp);
+ }
+ return &((XPVIO*)SvANY(sv))->xio_ifp;
+}
+
+PerlIO** Perl_macro_IoOFP (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVIO* data = (XPVIO*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xio_ofp);
+ }
+ return &((XPVIO*)SvANY(sv))->xio_ofp;
+}
+
+DIR** Perl_macro_IoDIRP (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVIO* data = (XPVIO*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xio_dirp);
+ }
+ return &((XPVIO*)SvANY(sv))->xio_dirp;
+}
+
+void** Perl_macro_IoANY (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVIO* data = (XPVIO*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xio_any);
+ }
+ return &((XPVIO*)SvANY(sv))->xio_any;
+}
+
+IV* Perl_macro_IoLINES (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVIO* data = (XPVIO*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xio_lines);
+ }
+ return &((XPVIO*)SvANY(sv))->xio_lines;
+}
+
+IV* Perl_macro_IoPAGE (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVIO* data = (XPVIO*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xio_page);
+ }
+ return &((XPVIO*)SvANY(sv))->xio_page;
+}
+
+IV* Perl_macro_IoPAGE_LEN (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVIO* data = (XPVIO*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xio_page_len);
+ }
+ return &((XPVIO*)SvANY(sv))->xio_page_len;
+}
+
+IV* Perl_macro_IoLINES_LEFT (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVIO* data = (XPVIO*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xio_lines_left);
+ }
+ return &((XPVIO*)SvANY(sv))->xio_lines_left;
+}
+
+char** Perl_macro_IoTOP_NAME (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVIO* data = (XPVIO*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xio_top_name);
+ }
+ return &((XPVIO*)SvANY(sv))->xio_top_name;
+}
+
+GV** Perl_macro_IoTOP_GV (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVIO* data = (XPVIO*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xio_top_gv);
+ }
+ return &((XPVIO*)SvANY(sv))->xio_top_gv;
+}
+
+char** Perl_macro_IoFMT_NAME (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVIO* data = (XPVIO*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xio_fmt_name);
+ }
+ return &((XPVIO*)SvANY(sv))->xio_fmt_name;
+}
+
+GV** Perl_macro_IoFMT_GV (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVIO* data = (XPVIO*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xio_fmt_gv);
+ }
+ return &((XPVIO*)SvANY(sv))->xio_fmt_gv;
+}
+
+char** Perl_macro_IoBOTTOM_NAME (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVIO* data = (XPVIO*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xio_bottom_name);
+ }
+ return &((XPVIO*)SvANY(sv))->xio_bottom_name;
+}
+
+GV** Perl_macro_IoBOTTOM_GV (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVIO* data = (XPVIO*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xio_bottom_gv);
+ }
+ return &((XPVIO*)SvANY(sv))->xio_bottom_gv;
+}
+
+short* Perl_macro_IoSUBPROCESS (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVIO* data = (XPVIO*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xio_subprocess);
+ }
+ return &((XPVIO*)SvANY(sv))->xio_subprocess;
+}
+
+char* Perl_macro_IoTYPE (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVIO* data = (XPVIO*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xio_type);
+ }
+ return &((XPVIO*)SvANY(sv))->xio_type;
+}
+
+char* Perl_macro_IoFLAGS (pTHX_ SV *sv) {
+ if(SvPMC(sv)) {
+ XPVIO* data = (XPVIO*) Parrot_PMC_get_pointer(PL_Parrot, SvANY(sv));
+ return &(data->xio_flags);
+ }
+ return &((XPVIO*)SvANY(sv))->xio_flags;
+}
+
+
/*
=for apidoc sv_upgrade
1.12 +22 -22 ponie/perl/sv.h
Index: sv.h
===================================================================
RCS file: /cvs/public/ponie/perl/sv.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -w -r1.11 -r1.12
--- sv.h 2 Mar 2004 12:03:02 -0000 1.11
+++ sv.h 10 Mar 2004 23:07:23 -0000 1.12
@@ -734,7 +734,7 @@
#define SvREPADTMP_off(sv) (SvFLAGS(sv) &= ~SVf_FAKE)
#endif
-#define SvRV(sv) ((XRV*) SvANY(sv))->xrv_rv
+#define SvRV(sv) (* Perl_macro_SvRV(aTHX_ (SV*) (sv)))
#define SvRVx(sv) SvRV(sv)
#define SvIVX(sv) (* Perl_macro_SvIVX(aTHX_ (SV*) (sv)))
@@ -780,34 +780,34 @@
STMT_START { assert(SvTYPE(sv) >= SVt_PV); \
(SvCUR(sv) = val - SvPVX(sv)); } STMT_END
-#define BmRARE(sv) ((XPVBM*) SvANY(sv))->xbm_rare
-#define BmUSEFUL(sv) ((XPVBM*) SvANY(sv))->xbm_useful
-#define BmPREVIOUS(sv) ((XPVBM*) SvANY(sv))->xbm_previous
+#define BmRARE(sv) (* Perl_macro_BmRARE(aTHX_ (SV*)(sv)))
+#define BmUSEFUL(sv) (* Perl_macro_BmUSEFUL(aTHX_ (SV*)(sv)))
+#define BmPREVIOUS(sv) (* Perl_macro_BmPREVIOUS(aTHX_ (SV*)(sv)))
-#define FmLINES(sv) ((XPVFM*) SvANY(sv))->xfm_lines
+#define FmLINES(sv) (* Perl_macro_BmPREVIOUS(aTHX_ (SV*)(sv)))
#define LvTYPE(sv) (*Perl_macro_LvTYPE(aTHX_ (SV*)(sv)))
#define LvTARG(sv) ((SV*)*Perl_macro_LvTARG(aTHX_ (SV*)(sv)))
#define LvTARGOFF(sv) ( * Perl_macro_LvTARGOFF(aTHX_ (SV*)(sv)))
#define LvTARGLEN(sv) ( * Perl_macro_LvTARGLEN(aTHX_ (SV*)(sv)))
-#define IoIFP(sv) ((XPVIO*) SvANY(sv))->xio_ifp
-#define IoOFP(sv) ((XPVIO*) SvANY(sv))->xio_ofp
-#define IoDIRP(sv) ((XPVIO*) SvANY(sv))->xio_dirp
-#define IoANY(sv) ((XPVIO*) SvANY(sv))->xio_any
-#define IoLINES(sv) ((XPVIO*) SvANY(sv))->xio_lines
-#define IoPAGE(sv) ((XPVIO*) SvANY(sv))->xio_page
-#define IoPAGE_LEN(sv) ((XPVIO*) SvANY(sv))->xio_page_len
-#define IoLINES_LEFT(sv)((XPVIO*) SvANY(sv))->xio_lines_left
-#define IoTOP_NAME(sv) ((XPVIO*) SvANY(sv))->xio_top_name
-#define IoTOP_GV(sv) ((XPVIO*) SvANY(sv))->xio_top_gv
-#define IoFMT_NAME(sv) ((XPVIO*) SvANY(sv))->xio_fmt_name
-#define IoFMT_GV(sv) ((XPVIO*) SvANY(sv))->xio_fmt_gv
-#define IoBOTTOM_NAME(sv)((XPVIO*) SvANY(sv))->xio_bottom_name
-#define IoBOTTOM_GV(sv) ((XPVIO*) SvANY(sv))->xio_bottom_gv
-#define IoSUBPROCESS(sv)((XPVIO*) SvANY(sv))->xio_subprocess
-#define IoTYPE(sv) ((XPVIO*) SvANY(sv))->xio_type
-#define IoFLAGS(sv) ((XPVIO*) SvANY(sv))->xio_flags
+#define IoIFP(sv) ( * Perl_macro_IoIFP(aTHX_ (SV*)(sv)))
+#define IoOFP(sv) ( * Perl_macro_IoOFP(aTHX_ (SV*)(sv)))
+#define IoDIRP(sv) ( * Perl_macro_IoDIRP(aTHX_ (SV*)(sv)))
+#define IoANY(sv) ( * Perl_macro_IoANY(aTHX_ (SV*)(sv)))
+#define IoLINES(sv) ( * Perl_macro_IoLINES(aTHX_ (SV*)(sv)))
+#define IoPAGE(sv) ( * Perl_macro_IoPAGE(aTHX_ (SV*)(sv)))
+#define IoPAGE_LEN(sv) ( * Perl_macro_IoPAGE_LEN(aTHX_ (SV*)(sv)))
+#define IoLINES_LEFT(sv)( * Perl_macro_IoLINES_LEFT(aTHX_ (SV*)(sv)))
+#define IoTOP_NAME(sv) ( * Perl_macro_IoTOP_NAME(aTHX_ (SV*)(sv)))
+#define IoTOP_GV(sv) ( * Perl_macro_IoTOP_GV(aTHX_ (SV*)(sv)))
+#define IoFMT_NAME(sv) ( * Perl_macro_IoFMT_NAME(aTHX_ (SV*)(sv)))
+#define IoFMT_GV(sv) ( * Perl_macro_IoFMT_GV(aTHX_ (SV*)(sv)))
+#define IoBOTTOM_NAME(sv)( * Perl_macro_IoBOTTOM_NAME(aTHX_ (SV*)(sv)))
+#define IoBOTTOM_GV(sv) ( * Perl_macro_IoBOTTOM_GV(aTHX_ (SV*)(sv)))
+#define IoSUBPROCESS(sv)( * Perl_macro_IoSUBPROCESS(aTHX_ (SV*)(sv)))
+#define IoTYPE(sv) ( * Perl_macro_IoTYPE(aTHX_ (SV*)(sv)))
+#define IoFLAGS(sv) ( * Perl_macro_IoFLAGS(aTHX_ (SV*)(sv)))
/* IoTYPE(sv) is a single character telling the type of I/O connection. */
#define IoTYPE_RDONLY '<'
1.4 +23 -23 ponie/perl/pod/perlapi.pod
Index: perlapi.pod
===================================================================
RCS file: /cvs/public/ponie/perl/pod/perlapi.pod,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -w -r1.3 -r1.4
--- perlapi.pod 15 Dec 2003 13:55:16 -0000 1.3
+++ perlapi.pod 10 Mar 2004 23:07:23 -0000 1.4
@@ -2868,22 +2868,22 @@
=for hackers
Found in file sv.h
-=item SvIVx
+=item SvIVX
-Coerces the given SV to an integer and returns it. Guarantees to evaluate
-sv only once. Use the more efficient C<SvIV> otherwise.
+Returns the raw value in the SV's IV slot, without checks or conversions.
+Only use when you are sure SvIOK is true. See also C<SvIV()>.
- IV SvIVx(SV* sv)
+ IV SvIVX(SV* sv)
=for hackers
Found in file sv.h
-=item SvIVX
+=item SvIVx
-Returns the raw value in the SV's IV slot, without checks or conversions.
-Only use when you are sure SvIOK is true. See also C<SvIV()>.
+Coerces the given SV to an integer and returns it. Guarantees to evaluate
+sv only once. Use the more efficient C<SvIV> otherwise.
- IV SvIVX(SV* sv)
+ IV SvIVx(SV* sv)
=for hackers
Found in file sv.h
@@ -3192,21 +3192,21 @@
=for hackers
Found in file sv.h
-=item SvPVx
+=item SvPVX
-A version of C<SvPV> which guarantees to evaluate sv only once.
+Returns a pointer to the physical string in the SV. The SV must contain a
+string.
- char* SvPVx(SV* sv, STRLEN len)
+ char* SvPVX(SV* sv)
=for hackers
Found in file sv.h
-=item SvPVX
+=item SvPVx
-Returns a pointer to the physical string in the SV. The SV must contain a
-string.
+A version of C<SvPV> which guarantees to evaluate sv only once.
- char* SvPVX(SV* sv)
+ char* SvPVx(SV* sv, STRLEN len)
=for hackers
Found in file sv.h
@@ -3445,22 +3445,22 @@
=for hackers
Found in file sv.h
-=item SvUVX
+=item SvUVx
-Returns the raw value in the SV's UV slot, without checks or conversions.
-Only use when you are sure SvIOK is true. See also C<SvUV()>.
+Coerces the given SV to an unsigned integer and returns it. Guarantees to
+evaluate sv only once. Use the more efficient C<SvUV> otherwise.
- UV SvUVX(SV* sv)
+ UV SvUVx(SV* sv)
=for hackers
Found in file sv.h
-=item SvUVx
+=item SvUVX
-Coerces the given SV to an unsigned integer and returns it. Guarantees to
-evaluate sv only once. Use the more efficient C<SvUV> otherwise.
+Returns the raw value in the SV's UV slot, without checks or conversions.
+Only use when you are sure SvIOK is true. See also C<SvUV()>.
- UV SvUVx(SV* sv)
+ UV SvUVX(SV* sv)
=for hackers
Found in file sv.h