summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/B/B.xs9
-rw-r--r--gv.h4
2 files changed, 6 insertions, 7 deletions
diff --git a/ext/B/B.xs b/ext/B/B.xs
index 17614cbbbb..15cadafd78 100644
--- a/ext/B/B.xs
+++ b/ext/B/B.xs
@@ -1757,7 +1757,6 @@ GvGP(gv)
#define GP_av_ix (SVp << 16) | STRUCT_OFFSET(struct gp, gp_av)
#define GP_form_ix (SVp << 16) | STRUCT_OFFSET(struct gp, gp_form)
#define GP_egv_ix (SVp << 16) | STRUCT_OFFSET(struct gp, gp_egv)
-#define GP_line_ix (line_tp << 16) | STRUCT_OFFSET(struct gp, gp_line)
void
SV(gv)
@@ -1772,7 +1771,6 @@ SV(gv)
AV = GP_av_ix
FORM = GP_form_ix
EGV = GP_egv_ix
- LINE = GP_line_ix
PREINIT:
GP *gp;
char *ptr;
@@ -1791,15 +1789,16 @@ SV(gv)
case U32p:
ret = sv_2mortal(newSVuv(*((U32*)ptr)));
break;
- case line_tp:
- ret = sv_2mortal(newSVuv(*((line_t *)ptr)));
- break;
default:
croak("Illegal alias 0x%08x for B::*SV", (unsigned)ix);
}
ST(0) = ret;
XSRETURN(1);
+U32
+GvLINE(gv)
+ B::GV gv
+
void
FILEGV(gv)
B::GV gv
diff --git a/gv.h b/gv.h
index 2b29b6d8d2..cf096c3f87 100644
--- a/gv.h
+++ b/gv.h
@@ -18,8 +18,8 @@ struct gp {
AV * gp_av; /* array value */
CV * gp_form; /* format value */
GV * gp_egv; /* effective gv, if *glob */
- line_t gp_line; /* line first declared at (for -w) */
- U32 gp_flags;
+ U32 gp_line:31; /* line first declared at (for -w) */
+ U32 gp_flags:1;
HEK * gp_file_hek; /* file first declared in (for -w) */
};