Ticket #30352: patch-src-pl-plperl.diff

File patch-src-pl-plperl.diff, 920 bytes (added by lperry (Perry Lee), 13 years ago)
Line 
1*** src/pl/plperl/plperl.c
2--- src/pl/plperl/plperl.c
3***************
4*** 700,706 **** plperl_trusted_init(void)
5                if (!isGV_with_GP(sv) || !GvCV(sv))
6                        continue;
7                SvREFCNT_dec(GvCV(sv)); /* free the CV */
8!               GvCV(sv) = NULL;                /* prevent call via GV */
9        }
10        hv_clear(stash);
11        /* invalidate assorted caches */
12--- 700,706 ----
13                if (!isGV_with_GP(sv) || !GvCV(sv))
14                        continue;
15                SvREFCNT_dec(GvCV(sv)); /* free the CV */
16!               GvCV_set(sv, NULL);             /* prevent call via GV */
17        }
18        hv_clear(stash);
19        /* invalidate assorted caches */
20*** src/pl/plperl/plperl.h
21--- src/pl/plperl/plperl.h
22***************
23*** 43,48 ****
24--- 43,53 ----
25  #undef bool
26  #endif
27
28+ /* supply GvCV_set if it's missing - ppport.h doesn't supply it, unfortunately */
29+ #ifndef GvCV_set
30+ #define GvCV_set(gv, cv)              (GvCV(gv) = cv)
31+ #endif
32+
33  /* routines from spi_internal.c */
34  int                   spi_DEBUG(void);
35  int                   spi_LOG(void);