perl-modperl-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From do...@locus.apache.org
Subject cvs commit: modperl/src/modules/perl Constants.xs mod_perl.h perl_config.c perl_util.c
Date Thu, 30 Mar 2000 00:44:42 GMT
dougm       00/03/29 16:44:42

  Modified:    .        Changes
               src/modules/perl Constants.xs mod_perl.h perl_config.c
                        perl_util.c
  Log:
  workaround use of Perl api functions that are no longer public with
  Perl 5.6.0 + win32
  
  Revision  Changes    Path
  1.445     +3 -0      modperl/Changes
  
  Index: Changes
  ===================================================================
  RCS file: /home/cvs/modperl/Changes,v
  retrieving revision 1.444
  retrieving revision 1.445
  diff -u -r1.444 -r1.445
  --- Changes	2000/03/30 00:20:32	1.444
  +++ Changes	2000/03/30 00:44:39	1.445
  @@ -10,6 +10,9 @@
   
   =item 1.22_01-dev
   
  +workaround use of Perl api functions that are no longer public with
  +Perl 5.6.0 + win32, thanks to Randy Kobes for spotting
  +
   change $Apache::VERSION check to use a string instead of SvNV, which
   was troublesome with Perl 5.6.0, thanks to Dave Seidel for pinpointing
   
  
  
  
  1.20      +16 -13    modperl/src/modules/perl/Constants.xs
  
  Index: Constants.xs
  ===================================================================
  RCS file: /home/cvs/modperl/src/modules/perl/Constants.xs,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- Constants.xs	2000/03/02 20:21:03	1.19
  +++ Constants.xs	2000/03/30 00:44:40	1.20
  @@ -56,22 +56,28 @@
   }
   #endif /*XS_IMPORT*/
   
  -static CV *no_warn = Nullcv;
  +/* prevent prototype mismatch warnings */
   
  -CV *empty_anon_sub(void)
  +static void check_proto(HV *stash, char *name)
   {
  -    return newSUB(start_subparse(FALSE, 0),
  -                  newSVOP(OP_CONST, 0, newSVpv("__ANON__",8)),
  -                  Nullop,
  -                  block_end(block_start(TRUE), newOP(OP_STUB,0)));
  +    GV **gvp = (GV**)hv_fetch(stash, name, strlen(name), FALSE);
  +    CV *cv;
  +
  +    if (!(gvp && *gvp && (cv = GvCVu(*gvp)))) {
  +	return;
  +    }
  +    if (CvROOT(cv)) {
  +	return;
  +    }
  +    if (!SvPOK(cv)) {
  +	sv_setsv((SV*)cv, &sv_no);
  +    }
   }
   
   #ifdef newCONSTSUB
   
   #define my_newCONSTSUB(stash, name, sv) \
  -    if(!no_warn) no_warn = empty_anon_sub(); \
  -    SAVESPTR(warnhook); \
  -    warnhook = (SV*)no_warn; \
  +    check_proto(stash, name); \
       newCONSTSUB(stash, name, sv)
   
   #else   
  @@ -94,10 +100,7 @@
   	curstash = curcop->cop_stash = stash;
       }
   
  -    /* prevent prototype mismatch warnings */
  -    if(!no_warn) no_warn = empty_anon_sub();
  -    SAVESPTR(warnhook);
  -    warnhook = (SV*)no_warn;
  +    check_proto(stash, name);
   
       (void)newSUB(start_subparse(FALSE, 0),
   	   newSVOP(OP_CONST, 0, newSVpv(name,0)),
  
  
  
  1.96      +0 -2      modperl/src/modules/perl/mod_perl.h
  
  Index: mod_perl.h
  ===================================================================
  RCS file: /home/cvs/modperl/src/modules/perl/mod_perl.h,v
  retrieving revision 1.95
  retrieving revision 1.96
  diff -u -r1.95 -r1.96
  --- mod_perl.h	2000/03/22 01:17:34	1.95
  +++ mod_perl.h	2000/03/30 00:44:40	1.96
  @@ -1107,12 +1107,10 @@
   void perl_run_rgy_endav(char *s);
   void perl_run_endav(char *s);
   void perl_call_halt(int status);
  -CV *empty_anon_sub(void);
   void perl_reload_inc(server_rec *s, pool *p);
   I32 perl_module_is_loaded(char *name);
   SV *perl_module2file(char *name);
   int perl_require_module(char *module, server_rec *s);
  -void perl_qrequire_module (char *name);
   int perl_load_startup_script(server_rec *s, pool *p, char *script, I32 my_warn);
   array_header *perl_cgi_env_init(request_rec *r);
   void perl_clear_env(void);
  
  
  
  1.93      +3 -0      modperl/src/modules/perl/perl_config.c
  
  Index: perl_config.c
  ===================================================================
  RCS file: /home/cvs/modperl/src/modules/perl/perl_config.c,v
  retrieving revision 1.92
  retrieving revision 1.93
  diff -u -r1.92 -r1.93
  --- perl_config.c	2000/03/22 01:17:34	1.92
  +++ perl_config.c	2000/03/30 00:44:40	1.93
  @@ -391,6 +391,7 @@
       cfg->pnotes = Nullhv;
       cfg->setup_env = 0;
   
  +#ifndef WIN32
       cfg->sigsave = make_array(p, 1, sizeof(perl_request_sigsave *));
   
       for (i=0; sigsave[i]; i++) {
  @@ -403,6 +404,8 @@
   			   sigsave[i], (int)sig->signo, (unsigned long)sig->h));
   	*(perl_request_sigsave **)push_array(cfg->sigsave) = sig;
       }
  +
  +#endif
   
       return cfg;
   }
  
  
  
  1.37      +10 -16    modperl/src/modules/perl/perl_util.c
  
  Index: perl_util.c
  ===================================================================
  RCS file: /home/cvs/modperl/src/modules/perl/perl_util.c,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- perl_util.c	2000/03/22 01:17:34	1.36
  +++ perl_util.c	2000/03/30 00:44:40	1.37
  @@ -226,6 +226,15 @@
       return newRV_noinc(insv);
   }
   
  +#ifndef load_module
  +#define load_module(flags, name, ver, imp) \
  +{ \
  +   OP *modname = newSVOP(OP_CONST, 0, name); \
  +   modname->op_private |= OPpCONST_BARE; \
  +   utilize(TRUE, start_subparse(FALSE,0), Nullop, modname, Nullop); \
  +}
  +#endif
  +
   SV *mod_perl_tie_table(table *t)
   {
       HV *hv = newHV();
  @@ -233,8 +242,7 @@
   
       /*try to make this quick as possible*/  
       if(!hv_exists(GvHV(incgv), "Apache/Table.pm", 15)) {
  -	utilize(TRUE, start_subparse(FALSE, 0), Nullop, 
  -		newSVOP(OP_CONST, 0, newSVpv("Apache/Table.pm",15)), Nullop);
  +	load_module(0, newSVpv("Apache::Table",0), Nullsv, Nullsv);
       }
   
       sv_setref_pv(sv, "Apache::table", (void*)t);
  @@ -566,20 +574,6 @@
   
       MP_TRACE_d(fprintf(stderr, "ok\n"));
       return 0;
  -}
  -
  -/* faster than require_module, 
  - * used when we're already in an eval context
  - */
  -void perl_qrequire_module(char *name) 
  -{
  -    OP *reqop;
  -    SV *key = perl_module2file(name);
  -    if((key && hv_exists_ent(GvHV(incgv), key, FALSE)))
  -	return;
  -    reqop = newSVOP(OP_CONST, 0, key);
  -    /*reqop->op_private |= OPpCONST_BARE;*/
  -    utilize(TRUE, start_subparse(FALSE, 0), Nullop, reqop, Nullop);
   }
   
   void perl_do_file(char *pv)
  
  
  

Mime
View raw message