cvs commit: modperl-2.0/src/modules/perl modperl_perl_global.c modperl_perl_global.h

2001-10-13 Thread dougm

dougm   01/10/13 11:55:03

  Modified:src/modules/perl modperl_perl_global.c modperl_perl_global.h
  Log:
  s/hv_fetch/hv_fetch_he/g
  
  Revision  ChangesPath
  1.10  +24 -9 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.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- modperl_perl_global.c 2001/10/08 21:09:08 1.9
  +++ modperl_perl_global.c 2001/10/13 18:55:03 1.10
  @@ -12,8 +12,14 @@
   
   /* XXX: PL_modglobal thingers might be useful elsewhere */
   
  +#define MP_MODGLOBAL_FETCH(gkey) \
  +hv_fetch_he(PL_modglobal, (char *)gkey-val, gkey-len, gkey-hash)
  +
  +#define MP_MODGLOBAL_STORE_HV(gkey) \
  +(HV*)*hv_store(PL_modglobal, gkey-val, gkey-len, (SV*)newHV(), gkey-hash)
  +
   #define MP_MODGLOBAL_ENT(key) \
  -{key, ModPerl:: key, (sizeof(ModPerl::)-1)+(sizeof(key)-1)}
  +{key, ModPerl:: key, (sizeof(ModPerl::)-1)+(sizeof(key)-1), 0}
   
   static modperl_modglobal_key_t MP_modglobal_keys[] = {
   MP_MODGLOBAL_ENT(END),
  @@ -36,18 +42,18 @@
   static AV *modperl_perl_global_avcv_fetch(pTHX_ modperl_modglobal_key_t *gkey,
 const char *package, I32 packlen)
   {
  -SV **svp = hv_fetch(PL_modglobal, gkey-val, gkey-len, FALSE);
  +HE *he = MP_MODGLOBAL_FETCH(gkey);
   HV *hv;
   
  -if (!(svp  (hv = (HV*)*svp))) {
  +if (!(he  (hv = (HV*)HeVAL(he {
   return Nullav;
   }
   
  -if (!(svp = hv_fetch(hv, package, packlen, FALSE))) {
  +if (!(he = hv_fetch_he(hv, (char *)package, packlen, 0))) {
   return Nullav;
   }
   
  -return (AV*)*svp;
  +return (AV*)HeVAL(he);
   }
   
   void modperl_perl_global_avcv_call(pTHX_ modperl_modglobal_key_t *gkey,
  @@ -76,6 +82,7 @@
   
   static int modperl_perl_global_avcv_set(pTHX_ SV *sv, MAGIC *mg)
   {
  +HE *he;
   HV *hv;
   AV *mav, *av = (AV*)sv;
   const char *package = HvNAME(PL_curstash);
  @@ -83,11 +90,19 @@
   modperl_modglobal_key_t *gkey =
   (modperl_modglobal_key_t *)mg-mg_ptr;
   
  -hv = (HV*)*hv_fetch(PL_modglobal, gkey-val, gkey-len, TRUE);
  -(void)SvUPGRADE((SV*)hv, SVt_PVHV);
  +if ((he = MP_MODGLOBAL_FETCH(gkey))) {
  +hv = (HV*)HeVAL(he);
  +}
  +else {
  +hv = MP_MODGLOBAL_STORE_HV(gkey);
  +}
   
  -mav = (AV*)*hv_fetch(hv, package, packlen, TRUE);
  -(void)SvUPGRADE((SV*)mav, SVt_PVAV);
  +if ((he = hv_fetch_he(hv, (char *)package, packlen, 0))) {
  +mav = (AV*)HeVAL(he);
  +}
  +else {
  +mav = (AV*)*hv_store(hv, package, packlen, (SV*)newAV(), 0);
  +}
   
   /* $cv = pop @av */
   sv = AvARRAY(av)[AvFILLp(av)];
  
  
  
  1.8   +1 -0  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.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- modperl_perl_global.h 2001/10/07 22:07:15 1.7
  +++ modperl_perl_global.h 2001/10/13 18:55:03 1.8
  @@ -5,6 +5,7 @@
   const char *name;
   const char *val;
   I32 len;
  +U32 hash;
   } modperl_modglobal_key_t;
   
   typedef enum {
  
  
  



cvs commit: modperl-2.0/src/modules/perl mod_perl.c modperl_perl_global.c modperl_perl_global.h

2001-10-13 Thread dougm

dougm   01/10/13 12:02:03

  Modified:src/modules/perl mod_perl.c modperl_perl_global.c
modperl_perl_global.h
  Log:
  calculate hash of MP_modglobal_keys keys at startup
  
  Revision  ChangesPath
  1.91  +1 -0  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.90
  retrieving revision 1.91
  diff -u -r1.90 -r1.91
  --- mod_perl.c2001/10/11 04:47:30 1.90
  +++ mod_perl.c2001/10/13 19:02:03 1.91
  @@ -332,6 +332,7 @@
   ap_add_version_component(pconf,
Perl_form(aTHX_ Perl/v%vd, PL_patchlevel));
   modperl_mgv_hash_handlers(pconf, s);
  +modperl_modglobal_hash_keys();
   #ifdef USE_ITHREADS
   modperl_init_clones(s, pconf);
   #endif
  
  
  
  1.11  +10 -0 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.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- modperl_perl_global.c 2001/10/13 18:55:03 1.10
  +++ modperl_perl_global.c 2001/10/13 19:02:03 1.11
  @@ -26,6 +26,16 @@
   { NULL },
   };
   
  +void modperl_modglobal_hash_keys(void)
  +{
  +modperl_modglobal_key_t *gkey = MP_modglobal_keys;
  +
  +while (gkey-name) {
  +PERL_HASH(gkey-hash, gkey-val, gkey-len);
  +gkey++;
  +}
  +}
  +
   modperl_modglobal_key_t *modperl_modglobal_lookup(pTHX_ const char *name)
   {
   int i;
  
  
  
  1.9   +2 -0  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.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- modperl_perl_global.h 2001/10/13 18:55:03 1.8
  +++ modperl_perl_global.h 2001/10/13 19:02:03 1.9
  @@ -49,6 +49,8 @@
   modperl_perl_global_svpv_t rs;
   } modperl_perl_globals_t;
   
  +void modperl_modglobal_hash_keys(void);
  +
   modperl_modglobal_key_t *modperl_modglobal_lookup(pTHX_ const char *name);
   
   void modperl_perl_global_request_save(pTHX_ request_rec *r);
  
  
  



cvs commit: modperl-2.0/src/modules/perl modperl_perl_global.c

2001-10-13 Thread dougm

dougm   01/10/13 12:05:16

  Modified:src/modules/perl modperl_perl_global.c
  Log:
  use consistent style to iterate over MP_modglobal_keys
  
  Revision  ChangesPath
  1.12  +5 -4  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.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- modperl_perl_global.c 2001/10/13 19:02:03 1.11
  +++ modperl_perl_global.c 2001/10/13 19:05:16 1.12
  @@ -38,12 +38,13 @@
   
   modperl_modglobal_key_t *modperl_modglobal_lookup(pTHX_ const char *name)
   {
  -int i;
  +modperl_modglobal_key_t *gkey = MP_modglobal_keys;
   
  -for (i=0; MP_modglobal_keys[i].name; i++) {
  -if (strEQ(MP_modglobal_keys[i].name, name)) {
  -return MP_modglobal_keys[i];
  +while (gkey-name) {
  +if (strEQ(gkey-name, name)) {
  +return gkey;
   }
  +gkey++;
   }
   
   return NULL;
  
  
  



cvs commit: modperl-2.0/src/modules/perl modperl_env.c

2001-10-13 Thread dougm

dougm   01/10/13 12:12:17

  Modified:src/modules/perl modperl_env.c
  Log:
  s/modperl_env_const_vars/MP_env_const_vars/g
  
  Revision  ChangesPath
  1.14  +4 -4  modperl-2.0/src/modules/perl/modperl_env.c
  
  Index: modperl_env.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_env.c,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- modperl_env.c 2001/10/13 19:11:32 1.13
  +++ modperl_env.c 2001/10/13 19:12:17 1.14
  @@ -31,7 +31,7 @@
   #define MP_ENV_ENT(k,v) \
   { k, sizeof(k)-1, v, sizeof(v)-1, 0 }
   
  -static modperl_env_ent_t modperl_env_const_vars[] = {
  +static modperl_env_ent_t MP_env_const_vars[] = {
   #ifdef MP_COMPAT_1X
   MP_ENV_ENT(GATEWAY_INTERFACE, CGI-Perl/1.1),
   #endif
  @@ -41,7 +41,7 @@
   
   void modperl_env_hash_keys(void)
   {
  -modperl_env_ent_t *ent = modperl_env_const_vars;
  +modperl_env_ent_t *ent = MP_env_const_vars;
   
   while (ent-key) {
   PERL_HASH(ent-hash, ent-key, ent-klen);
  @@ -69,8 +69,8 @@
   
   modperl_env_untie(mg_flags);
   
  -for (i = 0; modperl_env_const_vars[i].key; i++) {
  -const modperl_env_ent_t *ent = modperl_env_const_vars[i];
  +for (i = 0; MP_env_const_vars[i].key; i++) {
  +const modperl_env_ent_t *ent = MP_env_const_vars[i];
   
   hv_store(hv, ent-key, ent-klen,
newSVpvn(ent-val, ent-vlen), ent-hash);
  
  
  



cvs commit: modperl-2.0/src/modules/perl modperl_env.c

2001-10-13 Thread dougm

dougm   01/10/13 12:14:58

  Modified:src/modules/perl modperl_env.c
  Log:
  use consistent style to iterate over MP_env_const_vars
  
  Revision  ChangesPath
  1.15  +3 -4  modperl-2.0/src/modules/perl/modperl_env.c
  
  Index: modperl_env.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_env.c,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- modperl_env.c 2001/10/13 19:12:17 1.14
  +++ modperl_env.c 2001/10/13 19:14:58 1.15
  @@ -63,17 +63,16 @@
   
   void modperl_env_default_populate(pTHX)
   {
  +modperl_env_ent_t *ent = MP_env_const_vars;
   HV *hv = ENVHV;
   U32 mg_flags;
  -int i;
   
   modperl_env_untie(mg_flags);
   
  -for (i = 0; MP_env_const_vars[i].key; i++) {
  -const modperl_env_ent_t *ent = MP_env_const_vars[i];
  -
  +while (ent-key) {
   hv_store(hv, ent-key, ent-klen,
newSVpvn(ent-val, ent-vlen), ent-hash);
  +ent++;
   }
   
   modperl_env_tie(mg_flags);