dougm       01/09/12 21:10:55

  Modified:    src/modules/perl modperl_io.c
  Removed:     lib/ModPerl XSLoader.pm
  Log:
  fix tied filehandle breakage caused by bleedperl change #11639
  
  Revision  Changes    Path
  1.4       +9 -1      modperl-2.0/src/modules/perl/modperl_io.c
  
  Index: modperl_io.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_io.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- modperl_io.c      2001/08/01 16:52:40     1.3
  +++ modperl_io.c      2001/09/13 04:10:55     1.4
  @@ -8,9 +8,15 @@
   #define TIED(handle) \
   modperl_io_handle_tied(aTHX_ handle, "Apache::RequestRec")
   
  +/*
  + * XXX: bleedperl change #11639 switch tied handle magic
  + * from living in the gv to the GvIOp(gv), so we have to deal
  + * with both to support 5.6.x
  + */
   MP_INLINE void modperl_io_handle_untie(pTHX_ GV *handle)
   {
       sv_unmagic((SV*)handle, 'q');
  +    sv_unmagic((SV*)GvIOp(handle), 'q');
   
       MP_TRACE_g(MP_FUNC, "untie *%s(0x%lx), REFCNT=%d\n",
                  GvNAME(handle), (unsigned long)handle,
  @@ -27,6 +33,7 @@
       }
   
       sv_magic((SV*)handle, obj, 'q', Nullch, 0);
  +    sv_magic((SV*)GvIOp(handle), obj, 'q', Nullch, 0);
   
       MP_TRACE_g(MP_FUNC, "tie *%s(0x%lx) => %s, REFCNT=%d\n",
                  GvNAME(handle), (unsigned long)handle, classname,
  @@ -36,8 +43,9 @@
   MP_INLINE int modperl_io_handle_tied(pTHX_ GV *handle, char *classname)
   {
       MAGIC *mg;
  +    SV *sv = SvMAGICAL(GvIOp(handle)) ? (SV*)GvIOp(handle) : (SV*)handle;
   
  -    if (SvMAGICAL(handle) && (mg = mg_find((SV*)handle, 'q'))) {
  +    if (SvMAGICAL(sv) && (mg = mg_find(sv, 'q'))) {
        char *package = HvNAME(SvSTASH((SV*)SvRV(mg->mg_obj)));
   
        if (!strEQ(package, classname)) {
  
  
  

Reply via email to