This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Correct vim modeline
[perl5.git] / cop.h
diff --git a/cop.h b/cop.h
index 6824f4a..39a6b01 100644 (file)
--- a/cop.h
+++ b/cop.h
@@ -298,8 +298,8 @@ struct block_format {
 
 #define PUSHSUB_BASE(cx)                                               \
        ENTRY_PROBE(GvENAME(CvGV(cv)),                                  \
-               CopFILE((COP*)CvSTART(cv)),                             \
-               CopLINE((COP*)CvSTART(cv)));                            \
+               CopFILE((const COP *)CvSTART(cv)),                      \
+               CopLINE((const COP *)CvSTART(cv)));                     \
                                                                        \
        cx->blk_sub.cv = cv;                                            \
        cx->blk_sub.olddepth = CvDEPTH(cv);                             \
@@ -347,9 +347,9 @@ struct block_format {
 
 #define POPSUB(cx,sv)                                                  \
     STMT_START {                                                       \
-       RETURN_PROBE(GvENAME(CvGV((CV*)cx->blk_sub.cv)),                \
-               CopFILE((COP*)CvSTART((CV*)cx->blk_sub.cv)),            \
-               CopLINE((COP*)CvSTART((CV*)cx->blk_sub.cv)));           \
+       RETURN_PROBE(GvENAME(CvGV((const CV*)cx->blk_sub.cv)),          \
+               CopFILE((COP*)CvSTART((const CV*)cx->blk_sub.cv)),      \
+               CopLINE((COP*)CvSTART((const CV*)cx->blk_sub.cv)));     \
                                                                        \
        if (CxHASARGS(cx)) {                                            \
            POP_SAVEARRAY();                                            \
@@ -360,14 +360,14 @@ struct block_format {
                cx->blk_sub.argarray = newAV();                         \
                av_extend(cx->blk_sub.argarray, fill);                  \
                AvREIFY_only(cx->blk_sub.argarray);                     \
-               CX_CURPAD_SV(cx->blk_sub, 0) = (SV*)cx->blk_sub.argarray;       \
+               CX_CURPAD_SV(cx->blk_sub, 0) = MUTABLE_SV(cx->blk_sub.argarray); \
            }                                                           \
            else {                                                      \
                CLEAR_ARGARRAY(cx->blk_sub.argarray);                   \
            }                                                           \
        }                                                               \
-       sv = (SV*)cx->blk_sub.cv;                                       \
-       if (sv && (CvDEPTH((CV*)sv) = cx->blk_sub.olddepth))            \
+       sv = MUTABLE_SV(cx->blk_sub.cv);                                \
+       if (sv && (CvDEPTH((const CV*)sv) = cx->blk_sub.olddepth))      \
            sv = NULL;                                          \
     } STMT_END
 
@@ -610,7 +610,8 @@ struct subst {
 #define sb_rxres       cx_u.cx_subst.sbu_rxres
 #define sb_rx          cx_u.cx_subst.sbu_rx
 
-#define PUSHSUBST(cx) CXINC, cx = &cxstack[cxstack_ix],                        \
+#ifdef PERL_CORE
+#  define PUSHSUBST(cx) CXINC, cx = &cxstack[cxstack_ix],              \
        cx->sb_iters            = iters,                                \
        cx->sb_maxiters         = maxiters,                             \
        cx->sb_rflags           = r_flags,                              \
@@ -628,11 +629,12 @@ struct subst {
        rxres_save(&cx->sb_rxres, rx);                                  \
        (void)ReREFCNT_inc(rx)
 
-#define CxONCE(cx)             ((cx)->cx_type & CXp_ONCE)
-
-#define POPSUBST(cx) cx = &cxstack[cxstack_ix--];                      \
+#  define POPSUBST(cx) cx = &cxstack[cxstack_ix--];                    \
        rxres_free(&cx->sb_rxres);                                      \
        ReREFCNT_dec(cx->sb_rx)
+#endif
+
+#define CxONCE(cx)             ((cx)->cx_type & CXp_ONCE)
 
 struct context {
     union {