On 10-04-06 11:44 , Torsten Förtsch wrote:
> On Tuesday 06 April 2010 12:51:11 Torsten Förtsch wrote:
>> Any objections against this patch?
>>
> I have separated the previous patch into 2
> 1) to address the problem. It calls now modperl_mgv_resolve instead of
> modperl_code_attrs.
>
> Index: src/modules/perl/modperl_filter.c
> ===================================================================
> --- src/modules/perl/modperl_filter.c (revision 930668)
> +++ src/modules/perl/modperl_filter.c (working copy)
> @@ -404,10 +404,12 @@
> FREETMPS;LEAVE;
>
> if (init_handler) {
> + modperl_mgv_resolve(aTHX_ init_handler, p, init_handler->name,
> 1);
> +
> MP_TRACE_h(MP_FUNC, "found init handler %s",
> modperl_handler_name(init_handler));
>
> - if (!init_handler->attrs & MP_FILTER_INIT_HANDLER) {
> + if (!(init_handler->attrs & MP_FILTER_INIT_HANDLER)) {
> Perl_croak(aTHX_ "handler %s doesn't have "
> "the FilterInitHandler attribute set",
> modperl_handler_name(init_handler));This is a good, self-contained fix for a bug, +1 > @@ -656,6 +658,10 @@ > (void)SvUPGRADE(buffer, SVt_PV); > SvPOK_only(buffer); > SvCUR(buffer) = 0; > + SvGROW(buffer, 1); /* make PERL_ARGS_ASSERT_SV_CATPVN_FLAGS > + * happy, see Perl_sv_catpvn_flags() in sv.c > + * of perl 5.10.1 > + */ > > /* sometimes the EOS bucket arrives in the same brigade with other > * buckets, so that particular read() will not return 0 and will > This needs a separate commit. > 2) to remove the superfluous apr_strdup. > > Index: src/modules/perl/modperl_handler.c > =================================================================== > --- src/modules/perl/modperl_handler.c (revision 930668) > +++ src/modules/perl/modperl_handler.c (working copy) > @@ -36,7 +36,8 @@ > break; > } > > - handler->cv = NULL; > + /* not necessary due to apr_pcalloc */ > + /* handler->cv = NULL; */ This is an unrelated change that belongs in its own cleanup checkin. > handler->name = name; > MP_TRACE_h(MP_FUNC, "[%s] new handler %s", > modperl_pid_tid(p), handler->name); > @@ -515,7 +516,7 @@ > Perl_croak(aTHX_ "can't resolve the code reference"); > } > name = apr_pstrcat(p, HvNAME(GvSTASH(gv)), "::", GvNAME(gv), NULL); > - return modperl_handler_new(p, apr_pstrdup(p, name)); > + return modperl_handler_new(p, name); > default: > break; > }; +1 -- Philippe M. Chiasson GPG: F9BFE0C2480E7680 1AE53631CB32A107 88C3A5A5 http://gozer.ectoplasm.org/ m/gozer\@(apache|cpan|ectoplasm)\.org/
signature.asc
Description: OpenPGP digital signature
