dougm       01/04/19 10:38:16

  Modified:    xs/APR/Bucket APR__Bucket.h
  Log:
  proper implementation of APR::Bucket->read
  
  Revision  Changes    Path
  1.2       +20 -11    modperl-2.0/xs/APR/Bucket/APR__Bucket.h
  
  Index: APR__Bucket.h
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/xs/APR/Bucket/APR__Bucket.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- APR__Bucket.h     2001/04/18 04:43:44     1.1
  +++ APR__Bucket.h     2001/04/19 17:38:12     1.2
  @@ -12,24 +12,33 @@
       return modperl_bucket_sv_create(aTHX_ sv, offset, len);
   }
   
  -static MP_INLINE const char *mpxs_APR__Bucket_read(apr_bucket *bucket,
  -                                                   apr_ssize_t wanted)
  +/* this is just so C::Scan will pickup the prototype */
  +static MP_INLINE apr_status_t modperl_bucket_read(apr_bucket *bucket,
  +                                                  const char **str,
  +                                                  apr_size_t *len,
  +                                                  apr_read_type_e block)
   {
  +    return apr_bucket_read(bucket, str, len, block);
  +}
  +
  +static MP_INLINE apr_status_t mpxs_modperl_bucket_read(pTHX_
  +                                                       apr_bucket *bucket,
  +                                                       SV *buffer,
  +                                                       apr_read_type_e block)
  +{
       int rc;
       apr_ssize_t len;
       const char *str;
   
  -    rc = apr_bucket_read(bucket, &str, &len, wanted);
  +    rc = modperl_bucket_read(bucket, &str, &len, block);
   
  -    if ((rc != APR_SUCCESS) || !str) {
  -        if (rc != APR_EOF) {
  -            /* XXX: croak */
  -        }
  -        return NULL;
  -    }
  -    else {
  -        return str;
  +    if ((rc != APR_SUCCESS) && (rc != APR_EOF)) {
  +        /* XXX: croak ? */
       }
  +
  +    sv_setpvn(buffer, str, len);
  +
  +    return rc;
   }
   
   static MP_INLINE int mpxs_APR__Bucket_is_eos(apr_bucket *bucket)
  
  
  

Reply via email to