#if defined(PERL_DEBUG_READONLY_OPS)
# if defined(PERL_CORE)
px |void |Slab_to_ro |NN OPSLAB *slab
+px |void |Slab_to_rw |NN OPSLAB *const slab
# endif
: Used in OpREFCNT_inc() in sv.c
poxM |OP * |op_refcnt_inc |NULLOK OP *o
: FIXME - can be static.
poxM |PADOFFSET |op_refcnt_dec |NN OP *o
-# if defined(PERL_IN_OP_C)
-s |void |Slab_to_rw |NN OPSLAB *const slab
-# endif
#endif
#if defined(PERL_IN_PERL_C)
#define opslab_free_nopad(a) Perl_opslab_free_nopad(aTHX_ a)
# if defined(PERL_DEBUG_READONLY_OPS)
#define Slab_to_ro(a) Perl_Slab_to_ro(aTHX_ a)
+#define Slab_to_rw(a) Perl_Slab_to_rw(aTHX_ a)
# endif
# endif
# if defined(PERL_CR_FILTER)
#define strip_return(a) S_strip_return(aTHX_ a)
# endif
# endif
-# if defined(PERL_DEBUG_READONLY_OPS)
-# if defined(PERL_IN_OP_C)
-#define Slab_to_rw(a) S_Slab_to_rw(aTHX_ a)
-# endif
-# endif
# if defined(PERL_IN_AV_C)
#define get_aux_mg(a) S_get_aux_mg(aTHX_ a)
# endif
if (svp && SvIOKp(*svp)) {
OP * const o = INT2PTR(OP*,SvIVX(*svp));
if (o) {
+#ifdef PERL_DEBUG_READONLY_OPS
+ Slab_to_rw(OpSLAB(o));
+#endif
/* set or clear breakpoint in the relevant control op */
if (i)
o->op_flags |= OPf_SPECIAL;
else
o->op_flags &= ~OPf_SPECIAL;
+#ifdef PERL_DEBUG_READONLY_OPS
+ Slab_to_ro(OpSLAB(o));
+#endif
}
}
return 0;
}
}
-STATIC void
-S_Slab_to_rw(pTHX_ OPSLAB *const slab)
+void
+Perl_Slab_to_rw(pTHX_ OPSLAB *const slab)
{
OPSLAB *slab2;
#define PERL_ARGS_ASSERT_SLAB_TO_RO \
assert(slab)
+PERL_CALLCONV void Perl_Slab_to_rw(pTHX_ OPSLAB *const slab)
+ __attribute__nonnull__(pTHX_1);
+#define PERL_ARGS_ASSERT_SLAB_TO_RW \
+ assert(slab)
+
# endif
#endif
#if defined(PERL_CR_FILTER)
assert(o)
PERL_CALLCONV OP * Perl_op_refcnt_inc(pTHX_ OP *o);
-# if defined(PERL_IN_OP_C)
-STATIC void S_Slab_to_rw(pTHX_ OPSLAB *const slab)
- __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_SLAB_TO_RW \
- assert(slab)
-
-# endif
#endif
#if defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION)
/* PERL_CALLCONV bool Perl_do_exec(pTHX_ const char* cmd)