dougm       01/08/27 10:14:48

  Modified:    src/modules/perl modperl_bucket.c
  Log:
  adjust to bucket/sms changes
  
  Revision  Changes    Path
  1.6       +18 -11    modperl-2.0/src/modules/perl/modperl_bucket.c
  
  Index: modperl_bucket.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_bucket.c,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- modperl_bucket.c  2001/08/21 16:46:56     1.5
  +++ modperl_bucket.c  2001/08/27 17:14:48     1.6
  @@ -9,6 +9,7 @@
       apr_bucket_refcount refcount;
       SV *sv;
       PerlInterpreter *perl;
  +    apr_sms_t *sms;
   } modperl_bucket_sv_t;
   
   static apr_status_t
  @@ -44,14 +45,9 @@
   
       SvREFCNT_dec(svbucket->sv);
   
  -    safefree(svbucket);
  +    apr_sms_free(svbucket->sms, svbucket);
   }
   
  -static void modperl_bucket_sv_free(void *e)
  -{
  -    Safefree(e);
  -}
  -
   static const apr_bucket_type_t modperl_bucket_sv_type = {
       "mod_perl SV bucket", 4,
       modperl_bucket_sv_destroy,
  @@ -68,8 +64,11 @@
   {
       modperl_bucket_sv_t *svbucket; 
   
  -    Newz(0, svbucket, 1, modperl_bucket_sv_t);
  +    svbucket = (modperl_bucket_sv_t *)apr_sms_malloc(bucket->sms,
  +                                                     sizeof(*svbucket));
   
  +    svbucket->sms = bucket->sms;
  +
       bucket = apr_bucket_shared_make(bucket, svbucket, offset, offset+len);
   
       /* XXX: need to deal with PerlInterpScope */
  @@ -79,7 +78,7 @@
       svbucket->sv = sv;
   
       if (!bucket) {
  -        Safefree(svbucket);
  +        apr_sms_free(svbucket->sms, svbucket);
           return NULL;
       }
   
  @@ -88,8 +87,6 @@
       MP_TRACE_f(MP_FUNC, "sv=0x%lx, refcnt=%d\n",
                  (unsigned long)sv, SvREFCNT(sv));
   
  -    bucket->free = modperl_bucket_sv_free;
  -
       bucket->type = &modperl_bucket_sv_type;
   
       return bucket;
  @@ -97,7 +94,17 @@
   
   apr_bucket *modperl_bucket_sv_create(pTHX_ SV *sv, int offset, int len)
   {
  -    apr_bucket *bucket = (apr_bucket *)safemalloc(sizeof(*bucket));
  +    apr_sms_t *sms;
  +    apr_bucket *bucket;
  +
  +    if (!apr_bucket_global_sms) {
  +        apr_sms_std_create(&apr_bucket_global_sms);
  +    }
  +
  +    sms = apr_bucket_global_sms;
  +    bucket = (apr_bucket *)apr_sms_malloc(sms, sizeof(*bucket));
       APR_BUCKET_INIT(bucket);
  +    bucket->sms = sms;
  +
       return modperl_bucket_sv_make(aTHX_ bucket, sv, offset, len);
   }
  
  
  

Reply via email to