diff --git a/src/pl/plperl/plperl.c b/src/pl/plperl/plperl.c index f2e8ad2207..d2c672c7bb 100644 --- a/src/pl/plperl/plperl.c +++ b/src/pl/plperl/plperl.c @@ -926,7 +926,7 @@ plperl_trusted_init(void) if (!isGV_with_GP(sv) || !GvCV(sv)) continue; SvREFCNT_dec(GvCV(sv)); /* free the CV */ - GvCV(sv) = NULL; /* prevent call via GV */ + GvCV_set(sv, NULL); /* prevent call via GV */ } hv_clear(stash); diff --git a/src/pl/plperl/plperl.h b/src/pl/plperl/plperl.h index a375bb5e31..c1236b7efc 100644 --- a/src/pl/plperl/plperl.h +++ b/src/pl/plperl/plperl.h @@ -85,6 +85,11 @@ (U32)HeKUTF8(he)) #endif +/* supply GvCV_set if it's missing - ppport.h doesn't supply it, unfortunately */ +#ifndef GvCV_set +#define GvCV_set(gv, cv) (GvCV(gv) = cv) +#endif + /* declare routines from plperl.c for access by .xs files */ HV *plperl_spi_exec(char *, int); void plperl_return_next(SV *);