X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=sv.h;h=815f109a6365e4237684716cd9b15b9a77a37160;hb=01146bad274273e459645fb4cce5aeac95999d64;hp=a5c568c301c03ea23a0d2c97522b3032b6147ac8;hpb=3cf51070223b095664012011bc367370eda3074c;p=p5sagit%2Fp5-mst-13.2.git diff --git a/sv.h b/sv.h index a5c568c..815f109 100644 --- a/sv.h +++ b/sv.h @@ -76,13 +76,9 @@ typedef enum { #endif /* There is collusion here with sv_clear - sv_clear exits early for SVt_NULL - and SVt_IV, so never reaches the clause at the end that uses - sv_type_details->body_size to determine whether to call safefree(). Hence - body_size can be set no-zero to record the size of PTEs and HEs, without - fear of bogus frees. */ -#ifdef PERL_IN_SV_C -#define PTE_SVSLOT SVt_IV -#endif + so never reaches the clause at the end that uses sv_type_details->body_size + to determine whether to call safefree(). Hence body_size can be set + non-zero to record the size of HEs, without fear of bogus frees. */ #if defined(PERL_IN_HV_C) || defined(PERL_IN_XS_APITEST) #define HE_SVSLOT SVt_NULL #endif @@ -103,10 +99,10 @@ typedef struct hek HEK; #define _SV_HEAD_UNION \ union { \ + char* svu_pv; /* pointer to malloced string */ \ IV svu_iv; \ UV svu_uv; \ SV* svu_rv; /* pointer to another SV */ \ - char* svu_pv; /* pointer to malloced string */ \ SV** svu_array; \ HE** svu_hash; \ GP* svu_gp; \ @@ -529,7 +525,7 @@ struct xpvfm { DIR * xiou_dirp; /* for opendir, readdir, etc */ \ void * xiou_any; /* for alignment */ \ } xio_dirpu; \ - IV xio_lines; /* $. */ \ + /* IV xio_lines is now in IVX $. */ \ IV xio_page; /* $% */ \ IV xio_page_len; /* $= */ \ IV xio_lines_left; /* $- */ \ @@ -1317,7 +1313,7 @@ the scalar's value cannot change unless written to. #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 IoLINES(sv) ((XPVIO*) SvANY(sv))->xiv_u.xivu_iv #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