dougm 01/03/15 20:58:59 Modified: lib/ModPerl Code.pm src/modules/perl mod_perl.h modperl_callback.c modperl_callback.h Added: src/modules/perl modperl_handler.c modperl_handler.h Log: moving modperl_handler_* to its own module Revision Changes Path 1.45 +2 -2 modperl-2.0/lib/ModPerl/Code.pm Index: Code.pm =================================================================== RCS file: /home/cvs/modperl-2.0/lib/ModPerl/Code.pm,v retrieving revision 1.44 retrieving revision 1.45 diff -u -r1.44 -r1.45 --- Code.pm 2001/03/14 18:32:11 1.44 +++ Code.pm 2001/03/16 04:58:57 1.45 @@ -511,8 +511,8 @@ generate_trace => {h => 'modperl_trace.h'}, ); -my @c_src_names = qw(interp tipool log config options callback gtop - util filter mgv pcw); +my @c_src_names = qw(interp tipool log config options callback handler + gtop util filter mgv pcw); my @g_c_names = map { "modperl_$_" } qw(hooks directives flags xsinit); my @c_names = ('mod_perl', (map "modperl_$_", @c_src_names)); sub c_files { [map { "$_.c" } @c_names, @g_c_names] } 1.27 +1 -0 modperl-2.0/src/modules/perl/mod_perl.h Index: mod_perl.h =================================================================== RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.h,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- mod_perl.h 2001/03/09 23:46:34 1.26 +++ mod_perl.h 2001/03/16 04:58:58 1.27 @@ -16,6 +16,7 @@ #include "modperl_types.h" #include "modperl_util.h" #include "modperl_config.h" +#include "modperl_handler.h" #include "modperl_callback.h" #include "modperl_tipool.h" #include "modperl_interp.h" 1.30 +0 -61 modperl-2.0/src/modules/perl/modperl_callback.c Index: modperl_callback.c =================================================================== RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_callback.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- modperl_callback.c 2001/03/15 07:04:41 1.29 +++ modperl_callback.c 2001/03/16 04:58:58 1.30 @@ -1,66 +1,5 @@ #include "mod_perl.h" -modperl_handler_t *modperl_handler_new(apr_pool_t *p, const char *name) -{ - modperl_handler_t *handler = - (modperl_handler_t *)apr_pcalloc(p, sizeof(*handler)); - - handler->name = name; - MP_TRACE_h(MP_FUNC, "new handler %s\n", handler->name); - - return handler; -} - -modperl_handler_t *modperl_handler_dup(apr_pool_t *p, - modperl_handler_t *h) -{ - MP_TRACE_h(MP_FUNC, "dup handler %s\n", h->name); - return modperl_handler_new(p, h->name); -} - -void modperl_handler_make_args(pTHX_ AV **avp, ...) -{ - va_list args; - - if (!*avp) { - *avp = newAV(); /* XXX: cache an intialized AV* per-request */ - } - - va_start(args, avp); - - for (;;) { - char *classname = va_arg(args, char *); - void *ptr; - SV *sv; - - if (classname == NULL) { - break; - } - - ptr = va_arg(args, void *); - - switch (*classname) { - case 'I': - if (strEQ(classname, "IV")) { - sv = ptr ? newSViv((IV)ptr) : &PL_sv_undef; - break; - } - case 'P': - if (strEQ(classname, "PV")) { - sv = ptr ? newSVpv((char *)ptr, 0) : &PL_sv_undef; - break; - } - default: - sv = modperl_ptr2obj(aTHX_ classname, ptr); - break; - } - - av_push(*avp, sv); - } - - va_end(args); -} - int modperl_callback(pTHX_ modperl_handler_t *handler, apr_pool_t *p, server_rec *s, AV *args) { 1.16 +0 -7 modperl-2.0/src/modules/perl/modperl_callback.h Index: modperl_callback.h =================================================================== RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_callback.h,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- modperl_callback.h 2001/03/15 05:39:07 1.15 +++ modperl_callback.h 2001/03/16 04:58:59 1.16 @@ -10,13 +10,6 @@ #define ap_hook_fixup ap_hook_fixups #define ap_hook_log ap_hook_log_transaction -modperl_handler_t *modperl_handler_new(apr_pool_t *p, const char *name); - -modperl_handler_t *modperl_handler_dup(apr_pool_t *p, - modperl_handler_t *h); - -void modperl_handler_make_args(pTHX_ AV **avp, ...); - int modperl_callback(pTHX_ modperl_handler_t *handler, apr_pool_t *p, server_rec *s, AV *args); 1.1 modperl-2.0/src/modules/perl/modperl_handler.c Index: modperl_handler.c =================================================================== #include "mod_perl.h" modperl_handler_t *modperl_handler_new(apr_pool_t *p, const char *name) { modperl_handler_t *handler = (modperl_handler_t *)apr_pcalloc(p, sizeof(*handler)); handler->name = name; MP_TRACE_h(MP_FUNC, "new handler %s\n", handler->name); return handler; } modperl_handler_t *modperl_handler_dup(apr_pool_t *p, modperl_handler_t *h) { MP_TRACE_h(MP_FUNC, "dup handler %s\n", h->name); return modperl_handler_new(p, h->name); } void modperl_handler_make_args(pTHX_ AV **avp, ...) { va_list args; if (!*avp) { *avp = newAV(); /* XXX: cache an intialized AV* per-request */ } va_start(args, avp); for (;;) { char *classname = va_arg(args, char *); void *ptr; SV *sv; if (classname == NULL) { break; } ptr = va_arg(args, void *); switch (*classname) { case 'I': if (strEQ(classname, "IV")) { sv = ptr ? newSViv((IV)ptr) : &PL_sv_undef; break; } case 'P': if (strEQ(classname, "PV")) { sv = ptr ? newSVpv((char *)ptr, 0) : &PL_sv_undef; break; } default: sv = modperl_ptr2obj(aTHX_ classname, ptr); break; } av_push(*avp, sv); } va_end(args); } 1.1 modperl-2.0/src/modules/perl/modperl_handler.h Index: modperl_handler.h =================================================================== #ifndef MODPERL_HANDLER_H #define MODPERL_HANDLER_H modperl_handler_t *modperl_handler_new(apr_pool_t *p, const char *name); modperl_handler_t *modperl_handler_dup(apr_pool_t *p, modperl_handler_t *h); void modperl_handler_make_args(pTHX_ AV **avp, ...); #endif /* MODPERL_HANDLER_H */