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);