dougm       2002/06/15 18:07:37

  Modified:    src/modules/perl mod_perl.c mod_perl.h modperl_interp.c
  Log:
  integrate modperl_perl_pp module
  
  Revision  Changes    Path
  1.126     +4 -55     modperl-2.0/src/modules/perl/mod_perl.c
  
  Index: mod_perl.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v
  retrieving revision 1.125
  retrieving revision 1.126
  diff -u -r1.125 -r1.126
  --- mod_perl.c        15 Jun 2002 20:59:06 -0000      1.125
  +++ mod_perl.c        16 Jun 2002 01:07:37 -0000      1.126
  @@ -20,6 +20,8 @@
   
       modperl_env_unload();
   
  +    modperl_perl_pp_unset_all();
  +
       return APR_SUCCESS;
   }
   #endif
  @@ -44,66 +46,11 @@
       apr_pool_t *p = MP_boot_data.p; \
       server_rec *s = MP_boot_data.s
   
  -#if defined(USE_ITHREADS) && defined(MP_PERL_5_6_x)
  -#   define MP_REFGEN_FIXUP
  -#endif
  -
  -#ifdef MP_REFGEN_FIXUP
  -
  -/*
  - * nasty workaround for bug fixed in bleedperl (11536 + 11553)
  - * XXX: when 5.8.0 is released + stable, we will require 5.8.0
  - * if ithreads are enabled.
  - */
  -static OP * (*MP_pp_srefgen_ptr)(pTHX) = NULL;
  -
  -static OP *modperl_pp_srefgen(pTHX)
  -{
  -    dSP;
  -    OP *o;
  -    SV *sv = *SP;
  -
  -    if (SvPADTMP(sv) && IS_PADGV(sv)) {
  -        /* prevent S_refto from making a copy of the GV,
  -         * tricking it to SvREFCNT_inc and point to this one instead.
  -         */
  -        SvPADTMP_off(sv);
  -    }
  -    else {
  -        sv = Nullsv;
  -    }
  -
  -    /* o = Perl_pp_srefgen(aTHX) */
  -    o = MP_pp_srefgen_ptr(aTHX);
  -
  -    if (sv) {
  -        /* restore original flags */
  -        SvPADTMP_on(sv);
  -    }
  -
  -    return o;
  -}
  -
  -static void modperl_refgen_ops_fixup(void)
  -{
  -    /* XXX: OP_REFGEN suffers a similar problem */
  -    if (!MP_pp_srefgen_ptr) {
  -        MP_pp_srefgen_ptr = PL_ppaddr[OP_SREFGEN];
  -        PL_ppaddr[OP_SREFGEN] = MEMBER_TO_FPTR(modperl_pp_srefgen);
  -    }
  -}
  -
  -#endif /* MP_REFGEN_FIXUP */
  -
   static void modperl_boot(pTHX_ void *data)
   {
       MP_dBOOT_DATA;
       MP_dSCFG(s);
       int i;
  -    
  -#ifdef MP_REFGEN_FIXUP
  -    modperl_refgen_ops_fixup();
  -#endif
   
       modperl_env_clear(aTHX);
   
  @@ -256,6 +203,8 @@
           /* how silly */
           return;
       }
  +
  +    modperl_perl_pp_set_all();
   
       modperl_env_init();
   
  
  
  
  1.46      +1 -0      modperl-2.0/src/modules/perl/mod_perl.h
  
  Index: mod_perl.h
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.h,v
  retrieving revision 1.45
  retrieving revision 1.46
  diff -u -r1.45 -r1.46
  --- mod_perl.h        15 Jun 2002 02:01:20 -0000      1.45
  +++ mod_perl.h        16 Jun 2002 01:07:37 -0000      1.46
  @@ -17,6 +17,7 @@
   #include "modperl_flags.h"
   #include "modperl_hooks.h"
   #include "modperl_perl_global.h"
  +#include "modperl_perl_pp.h"
   
   /* both perl and apr have largefile support enabled */
   #define MP_LARGE_FILES_ENABLED \
  
  
  
  1.45      +2 -0      modperl-2.0/src/modules/perl/modperl_interp.c
  
  Index: modperl_interp.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_interp.c,v
  retrieving revision 1.44
  retrieving revision 1.45
  diff -u -r1.44 -r1.45
  --- modperl_interp.c  13 Jun 2002 03:05:06 -0000      1.44
  +++ modperl_interp.c  16 Jun 2002 01:07:37 -0000      1.45
  @@ -162,6 +162,8 @@
   
       modperl_env_unload();
   
  +    modperl_perl_pp_unset_all();
  +
       return APR_SUCCESS;
   }
   
  
  
  


Reply via email to