You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by st...@apache.org on 2004/02/12 23:02:44 UTC

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

stas        2004/02/12 14:02:44

  Modified:    src/modules/perl modperl_cmd.c
  Log:
  refactor perldo with the main objective to move the declaration of the locally
  scoped variables into the scopes they are used in.
  
  Revision  Changes    Path
  1.56      +31 -30    modperl-2.0/src/modules/perl/modperl_cmd.c
  
  Index: modperl_cmd.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_cmd.c,v
  retrieving revision 1.55
  retrieving revision 1.56
  diff -u -u -r1.55 -r1.56
  --- modperl_cmd.c	12 Feb 2004 02:05:28 -0000	1.55
  +++ modperl_cmd.c	12 Feb 2004 22:02:44 -0000	1.56
  @@ -457,18 +457,10 @@
   {
       apr_pool_t *p = parms->pool;
       server_rec *s = parms->server;
  -    apr_table_t *options = NULL;
  -    const char *handler_name = NULL;
  +    apr_table_t *options;
       modperl_handler_t *handler = NULL;
  -    const char *pkg_base = NULL;
  -    const char *pkg_namespace = NULL;
       const char *pkg_name = NULL;
  -    const char *line_header = NULL;
       ap_directive_t *directive = parms->directive;
  -    int status = OK;
  -    AV *args = Nullav;
  -    SV *dollar_zero = Nullsv;
  -    int dollar_zero_tainted;
   #ifdef USE_ITHREADS
       MP_dSCFG(s);
       MP_PERL_DECLARE_CONTEXT;
  @@ -488,7 +480,12 @@
       MP_PERL_OVERRIDE_CONTEXT;
   
       /* data will be set by a <Perl> section */
  -    if ((options = parms->directive->data)) {
  +    if ((options = directive->data)) {
  +        const char *pkg_namespace;
  +        const char *pkg_base;
  +        const char *handler_name;
  +        const char *line_header;
  +
           if (!(handler_name = apr_table_get(options, "handler"))) {
               handler_name = apr_pstrdup(p, MP_DEFAULT_PERLSECTION_HANDLER);
               apr_table_set(options, "handler", handler_name);
  @@ -517,28 +514,30 @@
           arg = apr_pstrcat(p, "package ", pkg_name, ";", line_header,
                             arg, NULL);
       }
  +    
  +    {
  +        /* Set $0 to the current configuration file */
  +        SV *dollar_zero = get_sv("0", TRUE);
  +        int dollar_zero_tainted = SvTAINTED(dollar_zero);
   
  -    /* Set $0 to the current configuration file */
  -    dollar_zero = get_sv("0", TRUE);
  -    dollar_zero_tainted = SvTAINTED(dollar_zero);
  -
  -    if (dollar_zero_tainted) {
  -        SvTAINTED_off(dollar_zero); 
  -    }
  +        if (dollar_zero_tainted) {
  +            SvTAINTED_off(dollar_zero); 
  +        }
   
  -    ENTER;
  -    save_item(dollar_zero);
  -    sv_setpv(dollar_zero, directive->filename);
  -    eval_pv(arg, FALSE);
  -    LEAVE;
  +        ENTER;
  +        save_item(dollar_zero);
  +        sv_setpv(dollar_zero, directive->filename);
  +        eval_pv(arg, FALSE);
  +        LEAVE;
   
  -    if (dollar_zero_tainted) {
  -        SvTAINTED_on(dollar_zero);
  +        if (dollar_zero_tainted) {
  +            SvTAINTED_on(dollar_zero);
  +        }
       }
  -
  +    
       if (SvTRUE(ERRSV)) {
  -        SV *strict;
  -        if ((strict = MP_STRICT_PERLSECTIONS_SV) && SvTRUE(strict)) {
  +        SV *strict = MP_STRICT_PERLSECTIONS_SV;
  +        if (strict && SvTRUE(strict)) {
               char *error = SvPVX(ERRSV);
               MP_PERL_RESTORE_CONTEXT;
               return error;
  @@ -548,12 +547,14 @@
                                                directive->filename, 
                                                directive->line_num, 
                                                SvPVX(ERRSV)));
  -
           }
       }
       
       if (handler) {
  -        SV *saveconfig;
  +        int status;
  +        SV *saveconfig = MP_PERLSECTIONS_SAVECONFIG_SV;
  +        AV *args = Nullav;
  +        
           modperl_handler_make_args(aTHX_ &args,
                                     "Apache::CmdParms", parms,
                                     "APR::Table", options,
  @@ -563,7 +564,7 @@
   
           SvREFCNT_dec((SV*)args);
   
  -        if (!(saveconfig = MP_PERLSECTIONS_SAVECONFIG_SV) || !SvTRUE(saveconfig)) {
  +        if (!(saveconfig && SvTRUE(saveconfig))) {
               HV *symtab = (HV*)gv_stashpv(pkg_name, FALSE);
               if (symtab) {
                   modperl_clear_symtab(aTHX_ symtab);