stas        2004/04/06 19:56:30

  Modified:    src/modules/perl modperl_perl_global.c modperl_perl_global.h
  Log:
  bug fix: PL_endav could be uninitialized
  
  Revision  Changes    Path
  1.22      +7 -3      modperl-2.0/src/modules/perl/modperl_perl_global.c
  
  Index: modperl_perl_global.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_perl_global.c,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -u -r1.21 -r1.22
  --- modperl_perl_global.c     2 Apr 2004 02:17:45 -0000       1.21
  +++ modperl_perl_global.c     7 Apr 2004 02:56:30 -0000       1.22
  @@ -21,7 +21,7 @@
       globals->inc.gv    = PL_incgv;
       globals->defout.gv = PL_defoutgv;
       globals->rs.sv     = &PL_rs;
  -    globals->end.av    = PL_endav;
  +    globals->end.av    = &PL_endav;
       globals->end.key   = MP_MODGLOBAL_END;
   }
   
  @@ -233,13 +233,17 @@
   static void
   modperl_perl_global_avcv_save(pTHX_ modperl_perl_global_avcv_t *avcv)
   {
  -    modperl_perl_global_avcv_tie(aTHX_ avcv->key, avcv->av);
  +    if (!*avcv->av) {
  +        *avcv->av = newAV();
  +    }
  +
  +    modperl_perl_global_avcv_tie(aTHX_ avcv->key, *avcv->av);
   }
   
   static void
   modperl_perl_global_avcv_restore(pTHX_ modperl_perl_global_avcv_t *avcv)
   {
  -    modperl_perl_global_avcv_untie(aTHX_ avcv->av);
  +    modperl_perl_global_avcv_untie(aTHX_ *avcv->av);
   }
   
   /*
  
  
  
  1.14      +1 -1      modperl-2.0/src/modules/perl/modperl_perl_global.h
  
  Index: modperl_perl_global.h
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_perl_global.h,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -u -r1.13 -r1.14
  --- modperl_perl_global.h     2 Apr 2004 02:17:45 -0000       1.13
  +++ modperl_perl_global.h     7 Apr 2004 02:56:30 -0000       1.14
  @@ -28,7 +28,7 @@
   } modperl_modglobal_key_e;
   
   typedef struct {
  -    AV *av;
  +    AV **av;
       modperl_modglobal_key_e key;
   } modperl_perl_global_avcv_t;
   
  
  
  

Reply via email to