]> git.pld-linux.org Git - packages/apache-mod_perl.git/commitdiff
- perl 5.10 fix
authorElan Ruusamäe <glen@pld-linux.org>
Sun, 24 Feb 2008 11:34:39 +0000 (11:34 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=462994
  http://www.mail-archive.com/dev%40perl.apache.org/msg11916.html

Changed files:
    apache-mod_perl-magic.patch -> 1.1

apache-mod_perl-magic.patch [new file with mode: 0644]

diff --git a/apache-mod_perl-magic.patch b/apache-mod_perl-magic.patch
new file mode 100644 (file)
index 0000000..c7f9ca1
--- /dev/null
@@ -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); 
+
This page took 0.044211 seconds and 4 git commands to generate.