summaryrefslogtreecommitdiffstats
path: root/development/ming/0001-GvCV-isn-t-an-lvalue-since-Perl-5.13.10.patch
blob: e34eb0f6f5e524a1d4d907be2d71f106c1f2eb86 (plain)
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
From a0ea1cc47330a3ab316713d720892b6272401890 Mon Sep 17 00:00:00 2001
From: Niko Tyni <ntyni@debian.org>
Date: Sun, 10 Jul 2011 21:46:09 +0300
Subject: [PATCH] GvCV() isn't an lvalue since Perl 5.13.10

GvCV() can't be assigned to anymore with recent perls, so use the new
GvCV_set() macro when available or implement it the old way if it isn't.
---
 perl_ext/Exports.c  |    2 +-
 perl_ext/perl_swf.h |    4 ++++
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/perl_ext/Exports.c b/perl_ext/Exports.c
index 65f8912..5529728 100644
--- a/perl_ext/Exports.c
+++ b/perl_ext/Exports.c
@@ -190,7 +190,7 @@ void export_cv(SV *class, SV *caller, char *sub)
             SvPVX(caller), sub, SvPVX(class), sub); 
 #endif 
     gv = gv_fetchpv(form("%s::%s",SvPVX( caller), sub), TRUE, SVt_PVCV); 
-    GvCV(gv) = perl_get_cv(form("%s::%s", SvPVX(class), sub), TRUE); 
+    GvCV_set(gv, perl_get_cv(form("%s::%s", SvPVX(class), sub), TRUE)); 
     GvIMPORTED_CV_on(gv); 
     GvMULTI_on(gv);
 } 
diff --git a/perl_ext/perl_swf.h b/perl_ext/perl_swf.h
index b960229..1a3656e 100644
--- a/perl_ext/perl_swf.h
+++ b/perl_ext/perl_swf.h
@@ -58,6 +58,10 @@ typedef SWFFontCollection  SWF__FontCollection;
 #define aTHXo_
 #endif
 
+#ifndef GvCV_set
+# define GvCV_set(G, C) (GvCV(G) = (C))
+#endif
+
 #ifndef S_DEBUG
 #define swf_debug 0   /* Should we get this from, say, $SWF::debug? */
 #define S_DEBUG(level,code)  if (swf_debug >= level) { code; }
-- 
1.7.5.4