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

Reply via email to