diff options
author | Father Chrysostomos <sprout@cpan.org> | 2012-08-18 13:16:31 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2012-08-21 16:38:35 -0700 |
commit | 1afe1db112afcab7a87a011bd5c02cf0cc8ea95c (patch) | |
tree | 063b55c2d87b8b5f6961fc63f69c2e9c812ac60d /cv.h | |
parent | 541377b1bd73cdee43dd47958251827cfdc59320 (diff) | |
download | perl-1afe1db112afcab7a87a011bd5c02cf0cc8ea95c.tar.gz |
Move S_CvDEPTHp from cv.h to inline.h; shrink macros
This allows us to use assert() inside S_CvDEPTHp, so we no longer need
GCC and non-GCC variants of the macro that calls it.
Diffstat (limited to 'cv.h')
-rw-r--r-- | cv.h | 17 |
1 files changed, 1 insertions, 16 deletions
@@ -61,22 +61,7 @@ See L<perlguts/Autoloading with XSUBs>. (CvFILE(sv) = CopFILE(cop), CvDYNFILE_off(sv)) #endif #define CvFILEGV(sv) (gv_fetchfile(CvFILE(sv))) -PERL_STATIC_INLINE I32 * -S_CvDEPTHp(const CV * const sv) -{ - return SvTYPE(sv) == SVt_PVCV - ? &((XPVCV*)SvANY(sv))->xcv_depth - : &((XPVCV*)SvANY(sv))->xpv_fmdepth; -} -#if defined(__GNUC__) && !defined(PERL_GCC_BRACE_GROUPS_FORBIDDEN) -# define CvDEPTH(sv) (*({const CV *const _cvdepth = (const CV *)sv; \ - assert(SvTYPE(_cvdepth) == SVt_PVCV \ - || SvTYPE(_cvdepth) == SVt_PVFM); \ - S_CvDEPTHp(_cvdepth); \ - })) -#else -# define CvDEPTH(sv) (*S_CvDEPTHp((const CV *)sv)) -#endif +#define CvDEPTH(sv) (*S_CvDEPTHp((const CV *)sv)) #define CvPADLIST(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_padlist #define CvOUTSIDE(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_outside #define CvFLAGS(sv) ((XPVCV*)MUTABLE_PTR(SvANY(sv)))->xcv_flags |