} xcv_root_u;
GV * xcv_gv;
char * xcv_file;
- long xcv_depth;
PADLIST * xcv_padlist;
CV * xcv_outside;
U32 xcv_outside_seq; /* the COP sequence (at the point of our
cv_flags_t xcv_flags;
};
+typedef struct {
+ STRLEN xpv_cur; /* length of xp_pv as a C string */
+ STRLEN xpv_len; /* allocated size */
+ union {
+ IV xivu_iv;
+ UV xivu_uv;
+ void * xivu_p1;
+ I32 xivu_i32; /* depth, >= 2 indicates recursive call */
+ } xiv_u;
+ MAGIC* xmg_magic; /* magic for scalar array */
+ HV* xmg_stash; /* class package */
+
+ HV * xcv_stash;
+ union {
+ OP * xcv_start;
+ ANY xcv_xsubany;
+ } xcv_start_u;
+ union {
+ OP * xcv_root;
+ void (*xcv_xsub) (pTHX_ CV*);
+ } xcv_root_u;
+ GV * xcv_gv;
+ char * xcv_file;
+ PADLIST * xcv_padlist;
+ CV * xcv_outside;
+ U32 xcv_outside_seq; /* the COP sequence (at the point of our
+ * compilation) in the lexically enclosing
+ * sub */
+ cv_flags_t xcv_flags;
+} xpvcv_allocated;
+
/*
=head1 Handy Values
# Likewise HVs have no NV slot actually allocated.
# I don't think that they can get here, but better safe than sorry
return if $sv->isa('B::HV');
- }
+ return if $sv->isa('B::CV');
+ return if $sv->isa('B::FM');
+ }
asm "xnv", sprintf "%.40g", $sv->NVX;
}
$pattern =~ s/^ *\$ROOT *\n/
($] < 5.009) ? " ROOT = 0x0\n" : '';
/mge;
+ $pattern =~ s/^ *\$IVNV *\n/
+ ($] < 5.009) ? " IV = 0\n NV = 0\n" : '';
+ /mge;
SV = PVCV\\($ADDR\\) at $ADDR
REFCNT = 2
FLAGS = \\(PADMY,POK,pPOK,ANON,WEAKOUTSIDE\\)
- NV = 0
+ $IVNV
PROTOTYPE = ""
COMP_STASH = $ADDR\\t"main"
START = $ADDR ===> \\d+
SV = PVCV\\($ADDR\\) at $ADDR
REFCNT = (3|4)
FLAGS = \\(\\)
- NV = 0
+ $IVNV
COMP_STASH = $ADDR\\t"main"
START = $ADDR ===> \\d+
ROOT = $ADDR
SV = PVCV\\($ADDR\\) at $ADDR
REFCNT = (2)
FLAGS = \\(POK,pPOK,CONST\\)
- NV = 0
+ $IVNV
PROTOTYPE = ""
COMP_STASH = 0x0
$ROOT
+ relative_STRUCT_OFFSET(xpvhv_allocated, XPVHV, xhv_fill),
TRUE, HADNV, HASARENA, FIT_ARENA(0, sizeof(xpvhv_allocated)) },
- /* 76 */
- { sizeof(XPVCV), sizeof(XPVCV), 0, TRUE, HADNV,
- HASARENA, FIT_ARENA(0, sizeof(XPVCV)) },
+ /* 56 */
+ { sizeof(xpvcv_allocated), sizeof(XPVCV)
+ - relative_STRUCT_OFFSET(xpvcv_allocated, XPVCV, xpv_cur),
+ + relative_STRUCT_OFFSET(xpvcv_allocated, XPVCV, xpv_cur),
+ TRUE, NONV, HASARENA, FIT_ARENA(0, sizeof(xpvcv_allocated)) },
{ sizeof(xpvfm_allocated),
- sizeof(xpvfm_allocated)
+ sizeof(XPVFM)
- relative_STRUCT_OFFSET(xpvfm_allocated, XPVFM, xpv_cur),
+ relative_STRUCT_OFFSET(xpvfm_allocated, XPVFM, xpv_cur),
- TRUE, HADNV, NOARENA, FIT_ARENA(20, sizeof(xpvfm_allocated)) },
+ TRUE, NONV, NOARENA, FIT_ARENA(20, sizeof(xpvfm_allocated)) },
/* XPVIO is 84 bytes, fits 48x */
{ sizeof(XPVIO), sizeof(XPVIO), 0, TRUE, HADNV,