stas        2003/03/13 21:33:19

  Modified:    src/modules/perl modperl_util.h modperl_filter.c
               xs/Apache/RequestIO Apache__RequestIO.h
               .        Changes
  Log:
  move the check that print/printf/puts/write/etc are called in the
  response phase into the functions themselves so 1) we can print a more
  useful error message 2) this check is not always needed in
  modperl_wbucket_write, when called internally, so we save some cycles.
  
  Revision  Changes    Path
  1.40      +7 -1      modperl-2.0/src/modules/perl/modperl_util.h
  
  Index: modperl_util.h
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_util.h,v
  retrieving revision 1.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- modperl_util.h    4 Mar 2003 09:42:42 -0000       1.39
  +++ modperl_util.h    14 Mar 2003 05:33:18 -0000      1.40
  @@ -56,7 +56,13 @@
               Perl_croak(aTHX_ modperl_apr_strerror(rc)); \
           } \
       } while (0)
  -        
  +
  +/* check whether the response phase has been initialized already */
  +#define MP_CHECK_WBUCKET_INIT(func) \
  +    if (!rcfg->wbucket) { \
  +        Perl_croak(aTHX_ func "can't be called before the response phase"); \
  +    }
  +
   MP_INLINE server_rec *modperl_sv2server_rec(pTHX_ SV *sv);
   MP_INLINE request_rec *modperl_sv2request_rec(pTHX_ SV *sv);
   
  
  
  
  1.56      +0 -5      modperl-2.0/src/modules/perl/modperl_filter.c
  
  Index: modperl_filter.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_filter.c,v
  retrieving revision 1.55
  retrieving revision 1.56
  diff -u -r1.55 -r1.56
  --- modperl_filter.c  8 Mar 2003 09:15:16 -0000       1.55
  +++ modperl_filter.c  14 Mar 2003 05:33:18 -0000      1.56
  @@ -144,11 +144,6 @@
       apr_size_t len = *wlen;
       *wlen = 0;
   
  -    if (!wb) {
  -        /* the response is not initialized yet */
  -        Perl_croak(aTHX_ "can't be called before the response phase");
  -    }
  -    
       if ((len + wb->outcnt) > sizeof(wb->outbuf)) {
           apr_status_t rv;
           if ((rv = modperl_wbucket_flush(wb, FALSE)) != APR_SUCCESS) {
  
  
  
  1.37      +6 -1      modperl-2.0/xs/Apache/RequestIO/Apache__RequestIO.h
  
  Index: Apache__RequestIO.h
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/xs/Apache/RequestIO/Apache__RequestIO.h,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- Apache__RequestIO.h       3 Mar 2003 03:39:06 -0000       1.36
  +++ Apache__RequestIO.h       14 Mar 2003 05:33:19 -0000      1.37
  @@ -40,6 +40,7 @@
   
       MP_START_TIMES();
   
  +    MP_CHECK_WBUCKET_INIT("$r->puts");
       mpxs_write_loop(modperl_wbucket_write, rcfg->wbucket);
   
       MP_END_TIMES();
  @@ -66,7 +67,8 @@
       mpxs_usage_va_1(r, "$r->print(...)");
       
       rcfg = modperl_config_req_get(r);
  -    
  +
  +    MP_CHECK_WBUCKET_INIT("$r->print");
       mpxs_write_loop(modperl_wbucket_write, rcfg->wbucket);
       
       mpxs_output_flush(r, rcfg);
  @@ -93,6 +95,7 @@
       modperl_perl_do_sprintf(aTHX_ sv, items, MARK);
       bytes = SvCUR(sv);
   
  +    MP_CHECK_WBUCKET_INIT("$r->printf");
       MP_FAILURE_CROAK(modperl_wbucket_write(aTHX_ rcfg->wbucket,
                                              SvPVX(sv), &bytes));
       
  @@ -126,6 +129,7 @@
           wlen = bufsiz;
       }
   
  +    MP_CHECK_WBUCKET_INIT("$r->write");
       MP_FAILURE_CROAK(modperl_wbucket_write(aTHX_ rcfg->wbucket,
                                              buf+offset, &wlen));
       
  @@ -144,6 +148,7 @@
   
       rcfg = modperl_config_req_get(r);
   
  +    MP_CHECK_WBUCKET_INIT("$r->rflush");
       MP_FAILURE_CROAK(modperl_wbucket_flush(rcfg->wbucket, TRUE));
   
       return APR_SUCCESS;
  
  
  
  1.149     +10 -0     modperl-2.0/Changes
  
  Index: Changes
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/Changes,v
  retrieving revision 1.148
  retrieving revision 1.149
  diff -u -r1.148 -r1.149
  --- Changes   13 Mar 2003 06:10:46 -0000      1.148
  +++ Changes   14 Mar 2003 05:33:19 -0000      1.149
  @@ -10,6 +10,16 @@
   
   =item 1.99_09-dev
   
  +move the check that print/printf/puts/write/etc are called in the
  +response phase into the functions themselves so 1) we can print a more
  +useful error message 2) this check is not always needed in
  +modperl_wbucket_write, when called internally, so we save some cycles.
  +[Stas]
  +
  +add checks that print/printf/puts/write/etc are called in the response
  +phase. move the check into the functions themselves so we can print a
  +more useful error message [Stas]
  +
   'make install' now installs mod_perl*h files under httpd's include
   tree [Stas]
   
  
  
  

Reply via email to