GvFLAGS can be overlaid with SvCUR.
Nicholas Clark [Sat, 25 Feb 2006 17:16:24 +0000 (17:16 +0000)]
p4raw-id: //depot/perl@27330

gv.h
sv.h

diff --git a/gv.h b/gv.h
index 27bef6c..67218d8 100644 (file)
--- a/gv.h
+++ b/gv.h
@@ -36,7 +36,7 @@ struct gp {
        (*({GV *const yaah  = (GV *) gv;                                \
            assert(SvTYPE(yaah) == SVt_PVGV || SvTYPE(yaah) == SVt_PVLV); \
            assert(isGV_with_GP(yaah));                                 \
-           &(GvXPVGV(yaah)->xgv_flags);}))
+           &(GvXPVGV(yaah)->xpv_cur);}))
 #  define GvSTASH(gv)                                                  \
        (*({ GV *_gv = (GV *) gv;                                       \
            assert(isGV_with_GP(_gv));                                  \
@@ -57,7 +57,7 @@ struct gp {
         }))
 #else
 #  define GvGP(gv)     ((gv)->sv_u.svu_gp)
-#  define GvFLAGS(gv)  (GvXPVGV(gv)->xgv_flags)
+#  define GvFLAGS(gv)  (GvXPVGV(gv)->xpv_cur)
 #  define GvSTASH(gv)  (GvXPVGV(gv)->xnv_u.xgv_stash)
 #  define GvNAME(gv)   (GvXPVGV(gv)->xgv_name)
 #  define GvNAMELEN(gv)        (GvXPVGV(gv)->xgv_namelen)
diff --git a/sv.h b/sv.h
index 7445c76..e5fb2d3 100644 (file)
--- a/sv.h
+++ b/sv.h
@@ -424,7 +424,6 @@ struct xpvlv {
     /* a full glob fits into this */
     char*      xgv_name;
     STRLEN     xgv_namelen;
-    U8         xgv_flags;
 
     STRLEN     xlv_targoff;
     STRLEN     xlv_targlen;
@@ -438,8 +437,8 @@ struct xpvgv {
        NV      xnv_nv;
        HV *    xgv_stash;      /* The stash of this GV */
     }          xnv_u;
-    STRLEN     xpv_cur;        /* length of svu_pv as a C string */
-    STRLEN     xpv_len;        /* allocated size */
+    STRLEN     xpv_cur;        /* xgv_flags */
+    STRLEN     xpv_len;        /* 0 */
     union {
        IV      xivu_iv;        /* integer value or pv offset */
        UV      xivu_uv;
@@ -454,7 +453,6 @@ struct xpvgv {
 
     char*      xgv_name;
     STRLEN     xgv_namelen;
-    U8         xgv_flags;
 };
 
 struct xpvbm {