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