summaryrefslogtreecommitdiff
path: root/databases/postgresql90-server/files/patch-src-plperl-plperl
blob: 6f84a60e950ddef3e79ca07f35dabd894883f37d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Obtained from:	http://archives.postgresql.org/pgsql-hackers/2011-04/msg01283.php
Reference:	http://search.cpan.org/~jesse/perl-5.14.0/pod/perldelta.pod#GvCV()_and_GvGP()_are_no_longer_lvalues

--- src/pl/plperl/plperl.c.orig	2011-04-15 11:15:53.000000000 +0800
+++ src/pl/plperl/plperl.c	2011-05-19 20:39:34.126713700 +0800
@@ -874,7 +874,7 @@
 		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);
 
--- src/pl/plperl/plperl.h.orig	2011-04-15 11:15:53.000000000 +0800
+++ src/pl/plperl/plperl.h	2011-05-19 20:39:34.127713548 +0800
@@ -42,6 +42,11 @@
 #undef bool
 #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 *);