dougm       2002/08/26 22:19:09

  Modified:    src/modules/perl modperl_perl.c modperl_perl.h
  Log:
  fix some 5.6.x compile breakage
  
  Revision  Changes    Path
  1.17      +22 -4     modperl-2.0/src/modules/perl/modperl_perl.c
  
  Index: modperl_perl.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_perl.c,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- modperl_perl.c    27 Aug 2002 04:24:08 -0000      1.16
  +++ modperl_perl.c    27 Aug 2002 05:19:09 -0000      1.17
  @@ -119,8 +119,12 @@
           modperl_perl_call_list(aTHX_ PL_endav, "END");
       }
   
  -    if ((module_commands = modperl_module_config_table_get(perl, FALSE))) {
  -        modperl_svptr_table_destroy(perl, module_commands);
  +    {
  +        dTHXa(perl);
  +
  +        if ((module_commands = modperl_module_config_table_get(aTHX_ FALSE))) {
  +            modperl_svptr_table_destroy(aTHX_ module_commands);
  +        }
       }
   
       perl_destruct(perl);
  @@ -156,6 +160,19 @@
   
   #ifdef USE_ITHREADS
   
  +#ifdef MP_PERL_5_6_x
  +#   define my_sv_dup(s, p) sv_dup(s)
  +
  +typedef struct {
  +    AV *stashes;
  +    UV flags;
  +    PerlInterpreter *proto_perl;
  +} CLONE_PARAMS;
  +
  +#else
  +#   define my_sv_dup(s, p) sv_dup(s, p)
  +#endif
  +
   /*
    * copy a PTR_TBL_t whos PTR_TBL_ENT_t values are SVs.
    * the SVs are dup-ed so each interpreter has its own copy.
  @@ -204,7 +221,7 @@
               dst_ent->oldval = src_ent->oldval;
   
               dst_ent->newval =
  -                SvREFCNT_inc(sv_dup((SV*)src_ent->newval, &parms));
  +                SvREFCNT_inc(my_sv_dup((SV*)src_ent->newval, &parms));
           }
       }
   
  @@ -213,6 +230,8 @@
       return tbl;
   }
   
  +#endif
  +
   /*
    * need to free the SV values in addition to ptr_table_free
    */
  @@ -240,7 +259,6 @@
   
       ptr_table_free(tbl);
   }
  -#endif
   
   /*
    * the Perl ptr_table_ api does not provide a function to remove
  
  
  
  1.9       +2 -2      modperl-2.0/src/modules/perl/modperl_perl.h
  
  Index: modperl_perl.h
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_perl.h,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- modperl_perl.h    27 Aug 2002 01:46:27 -0000      1.8
  +++ modperl_perl.h    27 Aug 2002 05:19:09 -0000      1.9
  @@ -18,9 +18,9 @@
   PTR_TBL_t *modperl_svptr_table_clone(pTHX_ PerlInterpreter *proto_perl,
                                        PTR_TBL_t *source);
   
  -void modperl_svptr_table_destroy(pTHX_ PTR_TBL_t *tbl);
  -
   #endif
  +
  +void modperl_svptr_table_destroy(pTHX_ PTR_TBL_t *tbl);
   
   void modperl_svptr_table_delete(pTHX_ PTR_TBL_t *tbl, void *key);
   
  
  
  


Reply via email to