gozer       2004/02/12 11:42:47

  Modified:    src/modules/perl modperl_const.c modperl_filter.c
               xs/APR/PerlIO apr_perlio.c
  Log:
  Newer gcc (3.3.2 for example) detect new problems with -Wall. Fixing a few
  warning about using potentially uninitialized variables.
  
  Important to keep in mind that the C SPEC does state that here:
  
  void foo(void) {
      char *bar;
  }
  
  bar's initial state will be undefined.
  
  This change makes mod_perl compile clean with -Wall for now.
  
  Revision  Changes    Path
  1.10      +2 -5      modperl-2.0/src/modules/perl/modperl_const.c
  
  Index: modperl_const.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_const.c,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- modperl_const.c   12 May 2003 13:00:15 -0000      1.9
  +++ modperl_const.c   12 Feb 2004 19:42:47 -0000      1.10
  @@ -4,17 +4,16 @@
   typedef SV *(*constants_lookup)(pTHX_ const char *);
   typedef const char ** (*constants_group_lookup)(const char *);
   
  -static SV *new_constsub(pTHX_ constants_lookup lookup,
  +static void new_constsub(pTHX_ constants_lookup lookup,
                           HV *caller_stash, HV *stash,
                           const char *name)
   {
       int name_len = strlen(name);
       GV **gvp = (GV **)hv_fetch(stash, name, name_len, TRUE);
  -    SV *val;
   
       /* dont redefine */
       if (!isGV(*gvp) || !GvCV(*gvp)) {
  -        val = (*lookup)(aTHX_ name);
  +        SV *val = (*lookup)(aTHX_ name);
   
   #if 0
           fprintf(stderr, "newCONSTSUB(%s, %s, %d)\n",
  @@ -38,8 +37,6 @@
   
           GvCV(alias) = GvCV(*gvp);
       }
  -
  -    return val;
   }
   
   int modperl_const_compile(pTHX_ const char *classname,
  
  
  
  1.82      +16 -18    modperl-2.0/src/modules/perl/modperl_filter.c
  
  Index: modperl_filter.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_filter.c,v
  retrieving revision 1.81
  retrieving revision 1.82
  diff -u -r1.81 -r1.82
  --- modperl_filter.c  9 Feb 2004 19:32:42 -0000       1.81
  +++ modperl_filter.c  12 Feb 2004 19:42:47 -0000      1.82
  @@ -325,30 +325,28 @@
   int modperl_filter_resolve_init_handler(pTHX_ modperl_handler_t *handler,
                                           apr_pool_t *p)
   {
  -    char *init_handler_pv_code;
  -    char *package_name;
  -    CV *cv;
  -    MAGIC *mg;
  +    char *init_handler_pv_code = NULL;
       
       if (handler->mgv_cv) {
  -        GV *gv;
  -        if ((gv = modperl_mgv_lookup(aTHX_ handler->mgv_cv))) {
  -            cv = modperl_mgv_cv(gv);
  -            package_name = modperl_mgv_as_string(aTHX_ handler->mgv_cv, p, 1);
  -            /* fprintf(stderr, "PACKAGE: %s\n", package_name ); */
  +        GV *gv = modperl_mgv_lookup(aTHX_ handler->mgv_cv);
  +        if (gv) {
  +            CV *cv = modperl_mgv_cv(gv);
  +            if (cv && SvMAGICAL(cv)) {
  +                MAGIC *mg = mg_find((SV*)(cv), '~');
  +                init_handler_pv_code = mg ? mg->mg_ptr : NULL;
  +            }
  +            else {
  +                /* XXX: should we complain in such a case? */
  +                return 0;
  +            }
           }
       }
  -
  -    if (cv && SvMAGICAL(cv)) {
  -        mg = mg_find((SV*)(cv), '~');
  -        init_handler_pv_code = mg ? mg->mg_ptr : NULL;
  -    }
  -    else {
  -        /* XXX: should we complain in such a case? */
  -        return 0;
  -    }
       
       if (init_handler_pv_code) {
  +        char *package_name =
  +            modperl_mgv_as_string(aTHX_ handler->mgv_cv, p, 1);
  +        /* fprintf(stderr, "PACKAGE: %s\n", package_name ); */
  +
           /* eval the code in the parent handler's package's context */
           char *code = apr_pstrcat(p, "package ", package_name, ";",
                                    init_handler_pv_code, NULL);
  
  
  
  1.36      +6 -0      modperl-2.0/xs/APR/PerlIO/apr_perlio.c
  
  Index: apr_perlio.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/xs/APR/PerlIO/apr_perlio.c,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- apr_perlio.c      10 Oct 2003 19:47:12 -0000      1.35
  +++ apr_perlio.c      12 Feb 2004 19:42:47 -0000      1.36
  @@ -87,6 +87,8 @@
         case 'r':
           apr_flag = APR_READ;
           break;
  +      default:
  +        Perl_croak(aTHX_ "unknown open mode: %s", mode);
       }
   
       /* APR_BINARY:   we always do binary read and PerlIO is supposed
  @@ -249,6 +251,8 @@
         case 2:
           where = APR_END;
           break;
  +      default:
  +        Perl_croak(aTHX_ "unknown whence mode: %d", whence);
       }
   
       rc = apr_file_seek(st->file, where, &seek_offset);
  @@ -451,6 +455,8 @@
         case APR_PERLIO_HOOK_READ:
           mode = "r";
           break;
  +      default:
  +        Perl_croak(aTHX_ "unknown APR_PERLIO type: %d", type);
       };
       
       PerlIO_apply_layers(aTHX_ f, mode, layers);
  
  
  

Reply via email to