SOURCES: apache-mod_perl-magic.patch (NEW) - perl 5.10 fix http:...

glen glen at pld-linux.org
Sun Feb 24 12:34:44 CET 2008


Author: glen                         Date: Sun Feb 24 11:34:44 2008 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- perl 5.10 fix
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=462994
  http://www.mail-archive.com/dev%40perl.apache.org/msg11916.html

---- Files affected:
SOURCES:
   apache-mod_perl-magic.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/apache-mod_perl-magic.patch
diff -u /dev/null SOURCES/apache-mod_perl-magic.patch:1.1
--- /dev/null	Sun Feb 24 12:34:44 2008
+++ SOURCES/apache-mod_perl-magic.patch	Sun Feb 24 12:34:39 2008
@@ -0,0 +1,93 @@
+Index: src/modules/perl/mod_perl.h
+===================================================================
+--- src/modules/perl/mod_perl.h	(revision 607690)
++++ src/modules/perl/mod_perl.h	(working copy)
+@@ -141,7 +141,8 @@
+ /* betting on Perl*Handlers not using CvXSUBANY
+  * mod_perl reuses this field for handler attributes
+  */
+-#define MP_CODE_ATTRS(cv) (CvXSUBANY((CV*)cv).any_i32)
++U16 *mp_code_attrs(pTHX_ CV *cv);
++#define MP_CODE_ATTRS(cv) (*mp_code_attrs(aTHX_ cv))
+ 
+ #define MgTypeExt(mg) (mg->mg_type == '~')
+ 
+Index: src/modules/perl/modperl_mgv.c
+===================================================================
+--- src/modules/perl/modperl_mgv.c	(revision 607694)
++++ src/modules/perl/modperl_mgv.c	(working copy)
+@@ -271,7 +271,7 @@
+     }
+     else {
+         if ((cv = get_cv(name, FALSE))) {
+-            handler->attrs = (U32)MP_CODE_ATTRS(cv);
++            handler->attrs = MP_CODE_ATTRS(cv);
+             handler->mgv_cv =
+                 modperl_mgv_compile(aTHX_ p, HvNAME(GvSTASH(CvGV(cv))));
+             modperl_mgv_append(aTHX_ p, handler->mgv_cv, GvNAME(CvGV(cv)));
+@@ -334,7 +334,7 @@
+             modperl_mgv_new_name(handler->mgv_obj, p, name);
+         }
+ 
+-        handler->attrs = (U32)MP_CODE_ATTRS(cv);
++        handler->attrs = MP_CODE_ATTRS(cv);
+         /* note: this is the real function after @ISA lookup */
+         handler->mgv_cv = modperl_mgv_compile(aTHX_ p, HvNAME(GvSTASH(gv)));
+         modperl_mgv_append(aTHX_ p, handler->mgv_cv, handler_name);
+Index: src/modules/perl/modperl_types.h
+===================================================================
+--- src/modules/perl/modperl_types.h	(revision 607690)
++++ src/modules/perl/modperl_types.h	(working copy)
+@@ -195,7 +195,7 @@
+     const char *name;
+     CV *cv;
+     U8 flags;
+-    U32 attrs;
++    U16 attrs;
+     modperl_handler_t *next;
+ };
+ 
+Index: src/modules/perl/modperl_util.c
+===================================================================
+--- src/modules/perl/modperl_util.c	(revision 607694)
++++ src/modules/perl/modperl_util.c	(working copy)
+Index: xs/Apache2/Filter/Apache2__Filter.h
+@@ -903,3 +903,13 @@
+     return retval ? SvREFCNT_inc(retval) : &PL_sv_undef;
+ }
+  
++U16 *mp_code_attrs(pTHX_ CV *cv) {
++    MAGIC *mg;    
++
++    if (!SvMAGICAL(cv)) {
++       sv_magic((SV*)cv, Nullsv, PERL_MAGIC_ext, NULL, -1); 
++    }
++
++    mg = mg_find((SV*)cv, PERL_MAGIC_ext);
++    return &(mg->mg_private);
++}
+===================================================================
+--- xs/Apache2/Filter/Apache2__Filter.h	(revision 607694)
++++ xs/Apache2/Filter/Apache2__Filter.h	(working copy)
+@@ -86,9 +86,9 @@
+     return len;
+ }
+ 
+-static MP_INLINE U32 *modperl_filter_attributes(SV *package, SV *cvrv)
++static MP_INLINE U16 *modperl_filter_attributes(pTHX_ SV *package, SV *cvrv)
+ {
+-    return (U32 *)&MP_CODE_ATTRS(SvRV(cvrv));
++    return &MP_CODE_ATTRS(SvRV(cvrv));
+ }
+ 
+ #ifdef MP_TRACE
+@@ -118,7 +118,7 @@
+ MP_STATIC XS(MPXS_modperl_filter_attributes)
+ {
+     dXSARGS;
+-    U32 *attrs = modperl_filter_attributes(ST(0), ST(1));
++    U16 *attrs = modperl_filter_attributes(aTHX_ ST(0), ST(1));
+     I32 i;
+ #ifdef MP_TRACE
+     HV *stash = gv_stashsv(ST(0), TRUE); 
+
================================================================


More information about the pld-cvs-commit mailing list