summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--op.c2
-rw-r--r--op.h8
2 files changed, 6 insertions, 4 deletions
diff --git a/op.c b/op.c
index 64dc9f2e7c..da99916d1f 100644
--- a/op.c
+++ b/op.c
@@ -4539,7 +4539,7 @@ Perl_newFOROP(pTHX_ I32 flags, char *label, line_t forline, OP *sv, OP *expr, OP
loop = tmp;
}
#else
- Renew(loop, 1, LOOP);
+ loop = PerlMemShared_realloc(loop, sizeof(LOOP));
#endif
loop->op_targ = padoff;
wop = newWHILEOP(flags, 1, loop, forline, newOP(OP_ITER, 0), block, cont, 0);
diff --git a/op.h b/op.h
index e38c578c48..7ae65d73dc 100644
--- a/op.h
+++ b/op.h
@@ -551,10 +551,12 @@ struct loop {
(var = (OP *) Perl_Slab_Alloc(aTHX_ m,size))
#define FreeOp(p) Perl_Slab_Free(aTHX_ p)
#else
-#define NewOp(m, var, c, type) Newxz(var, c, type)
+#define NewOp(m, var, c, type) \
+ (var = (MEM_WRAP_CHECK_(c,type) \
+ (type*)PerlMemShared_calloc(c, sizeof(type))))
#define NewOpSz(m, var, size) \
- (var = (OP*)safemalloc(size), memzero(var, size))
-#define FreeOp(p) Safefree(p)
+ (var = (OP*)PerlMemShared_calloc(1, size))
+#define FreeOp(p) PerlMemShared_free(p)
#endif
#ifdef PERL_MAD