summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cv.h1
-rw-r--r--inline.h4
-rw-r--r--sv.h21
3 files changed, 4 insertions, 22 deletions
diff --git a/cv.h b/cv.h
index 7c06727102..960ae1d05e 100644
--- a/cv.h
+++ b/cv.h
@@ -13,7 +13,6 @@
struct xpvcv {
_XPV_HEAD;
_XPVCV_COMMON;
- I32 xcv_depth; /* >= 2 indicates recursive call */
};
/*
diff --git a/inline.h b/inline.h
index 2b988a2019..c55ce23799 100644
--- a/inline.h
+++ b/inline.h
@@ -18,9 +18,7 @@ PERL_STATIC_INLINE I32 *
S_CvDEPTHp(const CV * const sv)
{
assert(SvTYPE(sv) == SVt_PVCV || SvTYPE(sv) == SVt_PVFM);
- return SvTYPE(sv) == SVt_PVCV
- ? &((XPVCV*)SvANY(sv))->xcv_depth
- : &((XPVCV*)SvANY(sv))->xpv_fmdepth;
+ return &((XPVCV*)SvANY(sv))->xcv_depth;
}
/* ------------------------------- sv.h ------------------------------- */
diff --git a/sv.h b/sv.h
index 38b2f20e58..ebbc27a1ce 100644
--- a/sv.h
+++ b/sv.h
@@ -365,26 +365,10 @@ perform the upgrade if necessary. See C<svtype>.
/* pad name vars only */
#define SVpad_STATE 0x80000000 /* pad name is a "state" var */
-/* MSVC6 generates "error C2099: initializer is not a constant" when
- * initializing bodies_by_type in sv.c. Workaround the compiler bug by
- * using an anonymous union, but only for MSVC6 since that isn't C89.
- */
-#if defined(_MSC_VER) && _MSC_VER < 1300
-# define _XPV_CUR_U_NAME
-# define xpv_cur xpvcuru_cur
-# define xpv_fmdepth xpvcuru_fmdepth
-#else
-# define _XPV_CUR_U_NAME xpv_cur_u
-# define xpv_cur xpv_cur_u.xpvcuru_cur
-# define xpv_fmdepth xpv_cur_u.xpvcuru_fmdepth
-#endif
#define _XPV_HEAD \
HV* xmg_stash; /* class package */ \
union _xmgu xmg_u; \
- union { \
- STRLEN xpvcuru_cur; /* length of svu_pv as a C string */ \
- I32 xpvcuru_fmdepth; \
- } _XPV_CUR_U_NAME; \
+ STRLEN xpv_cur; /* length of svu_pv as a C string */ \
STRLEN xpv_len /* allocated size */
union _xnvu {
@@ -482,7 +466,8 @@ typedef U16 cv_flags_t;
U32 xcv_outside_seq; /* the COP sequence (at the point of our \
* compilation) in the lexically enclosing \
* sub */ \
- cv_flags_t xcv_flags
+ cv_flags_t xcv_flags; \
+ I32 xcv_depth /* >= 2 indicates recursive call */
/* This structure must match XPVCV in cv.h */