Author: phred
Date: Wed Jul 27 19:15:01 2011
New Revision: 1151596

URL: http://svn.apache.org/viewvc?rev=1151596&view=rev
Log:
RT 64999
perl 5.14 compatibility, GvCV and GvGP lvalue changes in perl core

Reported by: Dave Mitchell
Fixed by: sendw...@hotmail.com
Tested by: Perrin Harkins, Fred Moyer

Modified:
    perl/modperl/branches/1.x/Changes
    perl/modperl/branches/1.x/Symbol/Symbol.xs
    perl/modperl/branches/1.x/src/modules/perl/Constants.xs
    perl/modperl/branches/1.x/src/modules/perl/Log.xs
    perl/modperl/branches/1.x/src/modules/perl/mod_perl.c
    perl/modperl/branches/1.x/src/modules/perl/mod_perl.h
    perl/modperl/branches/1.x/src/modules/perl/perl_config.c

Modified: perl/modperl/branches/1.x/Changes
URL: 
http://svn.apache.org/viewvc/perl/modperl/branches/1.x/Changes?rev=1151596&r1=1151595&r2=1151596&view=diff
==============================================================================
--- perl/modperl/branches/1.x/Changes (original)
+++ perl/modperl/branches/1.x/Changes Wed Jul 27 19:15:01 2011
@@ -10,8 +10,11 @@ all changes without author attribution a
 
 =item 1.32-dev
 
+RT 64999, perl 5.14 compatibility, GvCV and GvGP lvalue changes in perl core
+[<sendw...@hotmail.com>]
+
 RT 40918, fix issue with sigils in perl binary path
-[Slave Rezic <sre...@cpan.org>]
+[Slaven Rezic <sre...@cpan.org>]
 
 Work around a gcc optimization specific bug which
 cuased seg faults on FreeBSD 7.x during mod_perl startup.

Modified: perl/modperl/branches/1.x/Symbol/Symbol.xs
URL: 
http://svn.apache.org/viewvc/perl/modperl/branches/1.x/Symbol/Symbol.xs?rev=1151596&r1=1151595&r2=1151596&view=diff
==============================================================================
--- perl/modperl/branches/1.x/Symbol/Symbol.xs (original)
+++ perl/modperl/branches/1.x/Symbol/Symbol.xs Wed Jul 27 19:15:01 2011
@@ -30,7 +30,7 @@ static void undef(SV *ref)
            has_proto = TRUE;
 
        cv_undef(cv);
-       CvGV(cv) = gv;   /* let user-undef'd sub keep its identity */
+        CvGV_set(cv, gv); /* let user-undef'd sub keep its identity */
         if(has_proto) 
             SvPOK_on(cv); /* otherwise we get `Prototype mismatch:' */
 

Modified: perl/modperl/branches/1.x/src/modules/perl/Constants.xs
URL: 
http://svn.apache.org/viewvc/perl/modperl/branches/1.x/src/modules/perl/Constants.xs?rev=1151596&r1=1151595&r2=1151596&view=diff
==============================================================================
--- perl/modperl/branches/1.x/src/modules/perl/Constants.xs (original)
+++ perl/modperl/branches/1.x/src/modules/perl/Constants.xs Wed Jul 27 19:15:01 
2011
@@ -20,7 +20,7 @@ static void export_cv(SV *pclass, SV *ca
            SvPVX(caller), sub, SvPVX(pclass), sub);
 #endif
     gv = gv_fetchpv(form("%_::%s", caller, sub), TRUE, SVt_PVCV);
-    GvCV(gv) = perl_get_cv(form("%_::%s", pclass, sub), TRUE);
+    GvCV_set(gv, perl_get_cv(form("%_::%s", pclass, sub), TRUE));
     GvIMPORTED_CV_on(gv);
 }
 

Modified: perl/modperl/branches/1.x/src/modules/perl/Log.xs
URL: 
http://svn.apache.org/viewvc/perl/modperl/branches/1.x/src/modules/perl/Log.xs?rev=1151596&r1=1151595&r2=1151596&view=diff
==============================================================================
--- perl/modperl/branches/1.x/src/modules/perl/Log.xs (original)
+++ perl/modperl/branches/1.x/src/modules/perl/Log.xs Wed Jul 27 19:15:01 2011
@@ -10,7 +10,7 @@
 static void perl_cv_alias(char *to, char *from)
 {
     GV *gp = gv_fetchpv(to, TRUE, SVt_PVCV);
-    GvCV(gp) = perl_get_cv(from, TRUE);
+    GvCV_set(gp, perl_get_cv(from, TRUE));
 }
 
 static void ApacheLog(int level, SV *sv, SV *msg)

Modified: perl/modperl/branches/1.x/src/modules/perl/mod_perl.c
URL: 
http://svn.apache.org/viewvc/perl/modperl/branches/1.x/src/modules/perl/mod_perl.c?rev=1151596&r1=1151595&r2=1151596&view=diff
==============================================================================
--- perl/modperl/branches/1.x/src/modules/perl/mod_perl.c (original)
+++ perl/modperl/branches/1.x/src/modules/perl/mod_perl.c Wed Jul 27 19:15:01 
2011
@@ -791,8 +791,8 @@ void perl_startup (server_rec *s, pool *
     /* *CORE::GLOBAL::exit = \&Apache::exit */
     if(gv_stashpv("CORE::GLOBAL", FALSE)) {
        GV *exitgp = gv_fetchpv("CORE::GLOBAL::exit", TRUE, SVt_PVCV);
-       GvCV(exitgp) = perl_get_cv("Apache::exit", TRUE);
-       GvIMPORTED_CV_on(exitgp);
+       GvCV_set(exitgp, perl_get_cv("Apache::exit", TRUE));
+       GvIMPORTED_CV_on(exitgp);
     }
 
     ENTER_SAFE(s,p);

Modified: perl/modperl/branches/1.x/src/modules/perl/mod_perl.h
URL: 
http://svn.apache.org/viewvc/perl/modperl/branches/1.x/src/modules/perl/mod_perl.h?rev=1151596&r1=1151595&r2=1151596&view=diff
==============================================================================
--- perl/modperl/branches/1.x/src/modules/perl/mod_perl.h (original)
+++ perl/modperl/branches/1.x/src/modules/perl/mod_perl.h Wed Jul 27 19:15:01 
2011
@@ -1026,6 +1026,14 @@ else { \
 #define PERL_HEADER_PARSER_CREATE(s)
 #endif
 
+#ifndef GvCV_set
+#define GvCV_set(gv, cv) (GvCV(gv) = (cv))
+#endif
+
+#ifndef GvCV_set
+#define CvGV_set(gv, cv) (CvVG(gv) = (cv))
+#endif
+
 typedef struct {
     array_header *PerlPassEnv;
     array_header *PerlRequire;

Modified: perl/modperl/branches/1.x/src/modules/perl/perl_config.c
URL: 
http://svn.apache.org/viewvc/perl/modperl/branches/1.x/src/modules/perl/perl_config.c?rev=1151596&r1=1151595&r2=1151596&view=diff
==============================================================================
--- perl/modperl/branches/1.x/src/modules/perl/perl_config.c (original)
+++ perl/modperl/branches/1.x/src/modules/perl/perl_config.c Wed Jul 27 
19:15:01 2011
@@ -1720,7 +1720,7 @@ void perl_clear_symtab(HV *symtab) 
        if((cv = GvCV((GV*)val)) && (GvSTASH((GV*)val) == GvSTASH(CvGV(cv)))) {
             GV *gv = CvGV(cv);
             cv_undef(cv);
-            CvGV(cv) = gv;
+            CvGV_set(cv, gv);
             GvCVGEN(gv) = 1; /* invalidate method cache */
         }
     }


Reply via email to