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)); @@ -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 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; */ 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; }; Torsten Förtsch -- Need professional modperl support? Hire me! (http://foertsch.name) Like fantasy? http://kabatinte.net
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)); @@ -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
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; */ 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; };
--------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@perl.apache.org For additional commands, e-mail: dev-h...@perl.apache.org