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 */