stas        2004/06/01 16:33:50

  Modified:    xs/Apache/Filter Apache__Filter.h
               xs/maps  apache_functions.map
               xs/tables/current/ModPerl FunctionTable.pm
  Log:
  fflush(), get_brigade() and pass_brigade() now throw exceptions if
  called in the void context
  
  Revision  Changes    Path
  1.39      +42 -4     modperl-2.0/xs/Apache/Filter/Apache__Filter.h
  
  Index: Apache__Filter.h
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/xs/Apache/Filter/Apache__Filter.h,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -u -r1.38 -r1.39
  --- Apache__Filter.h  1 Jun 2004 20:18:02 -0000       1.38
  +++ Apache__Filter.h  1 Jun 2004 23:33:50 -0000       1.39
  @@ -292,9 +292,47 @@
   }
   
   static MP_INLINE
  -void mpxs_Apache__Filter_fflush(pTHX_ ap_filter_t *filter,
  -                                apr_bucket_brigade *brigade)
  +apr_status_t mpxs_Apache__Filter_fflush(pTHX_ ap_filter_t *filter,
  +                                        apr_bucket_brigade *brigade)
   {
  -    MP_RUN_CROAK(ap_fflush(filter, brigade),
  -                 "Apache::Filter::fflush");
  +    apr_status_t rc = ap_fflush(filter, brigade);
  +    /* if users don't bother to check the success, do it on their
  +     * behalf */
  +    if (GIMME_V == G_VOID && rc != APR_SUCCESS) {
  +        modperl_croak(aTHX_ rc, "Apache::Filter::fflush");
  +    }
  +
  +    return rc;
  +}
  +
  +static MP_INLINE
  +apr_status_t mpxs_Apache__Filter_get_brigade(pTHX_
  +                                             ap_filter_t *f,
  +                                             apr_bucket_brigade *bb,
  +                                             ap_input_mode_t mode,
  +                                             apr_read_type_e block,
  +                                             apr_off_t readbytes)
  +{
  +    apr_status_t rc = ap_get_brigade(f, bb, mode, block, readbytes);
  +    /* if users don't bother to check the success, do it on their
  +     * behalf */
  +    if (GIMME_V == G_VOID && rc != APR_SUCCESS) {
  +        modperl_croak(aTHX_ rc, "Apache::Filter::get_brigade");
  +    }
  +
  +    return rc;
  +}
  +
  +static MP_INLINE
  +apr_status_t mpxs_Apache__Filter_pass_brigade(pTHX_ ap_filter_t *f,
  +                                              apr_bucket_brigade *bb)
  +{
  +    apr_status_t rc = ap_pass_brigade(f, bb);
  +    /* if users don't bother to check the success, do it on their
  +     * behalf */
  +    if (GIMME_V == G_VOID && rc != APR_SUCCESS) {
  +        modperl_croak(aTHX_ rc, "Apache::Filter::pass_brigade");
  +    }
  +
  +    return rc;
   }
  
  
  
  1.80      +5 -3      modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.79
  retrieving revision 1.80
  diff -u -u -r1.79 -r1.80
  --- apache_functions.map      1 Jun 2004 20:18:02 -0000       1.79
  +++ apache_functions.map      1 Jun 2004 23:33:50 -0000       1.80
  @@ -221,11 +221,13 @@
   -ap_add_output_filter_handle
   -ap_get_output_filter_handle
   >ap_add_ouput_filters_by_type
  - ap_get_brigade | | \
  -               filter, bucket, mode=AP_MODE_READBYTES, \
  +-ap_get_brigade
  + mpxs_Apache__Filter_get_brigade | | \
  +               f, bb, mode=AP_MODE_READBYTES, \
                  block=APR_BLOCK_READ, \
                  readbytes=8192
  - ap_pass_brigade
  +- ap_pass_brigade
  + mpxs_Apache__Filter_pass_brigade
   !ap_register_input_filter
   !ap_register_output_filter
   -ap_remove_output_filter
  
  
  
  1.161     +50 -2     modperl-2.0/xs/tables/current/ModPerl/FunctionTable.pm
  
  Index: FunctionTable.pm
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/xs/tables/current/ModPerl/FunctionTable.pm,v
  retrieving revision 1.160
  retrieving revision 1.161
  diff -u -u -r1.160 -r1.161
  --- FunctionTable.pm  1 Jun 2004 20:18:02 -0000       1.160
  +++ FunctionTable.pm  1 Jun 2004 23:33:50 -0000       1.161
  @@ -2,7 +2,7 @@
   
   # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   # ! WARNING: generated by ModPerl::ParseSource/0.01
  -# !          Mon May 31 12:36:08 2004
  +# !          Tue Jun  1 15:51:17 2004
   # !          do NOT edit, any changes will be lost !
   # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   
  @@ -5798,7 +5798,7 @@
       ]
     },
     {
  -    'return_type' => 'void',
  +    'return_type' => 'apr_status_t',
       'name' => 'mpxs_Apache__Filter_fflush',
       'args' => [
         {
  @@ -5812,6 +5812,54 @@
         {
           'type' => 'apr_bucket_brigade *',
           'name' => 'brigade'
  +      }
  +    ]
  +  },
  +  {
  +    'return_type' => 'apr_status_t',
  +    'name' => 'mpxs_Apache__Filter_get_brigade',
  +    'args' => [
  +      {
  +        'type' => 'PerlInterpreter *',
  +        'name' => 'my_perl'
  +      },
  +      {
  +        'type' => 'ap_filter_t *',
  +        'name' => 'f'
  +      },
  +      {
  +        'type' => 'apr_bucket_brigade *',
  +        'name' => 'bb'
  +      },
  +      {
  +        'type' => 'ap_input_mode_t',
  +        'name' => 'mode'
  +      },
  +      {
  +        'type' => 'apr_read_type_e',
  +        'name' => 'block'
  +      },
  +      {
  +        'type' => 'apr_off_t',
  +        'name' => 'readbytes'
  +      }
  +    ]
  +  },
  +  {
  +    'return_type' => 'apr_status_t',
  +    'name' => 'mpxs_Apache__Filter_pass_brigade',
  +    'args' => [
  +      {
  +        'type' => 'PerlInterpreter *',
  +        'name' => 'my_perl'
  +      },
  +      {
  +        'type' => 'ap_filter_t *',
  +        'name' => 'f'
  +      },
  +      {
  +        'type' => 'apr_bucket_brigade *',
  +        'name' => 'bb'
         }
       ]
     },
  
  
  

Reply via email to