apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stas Bekman <s...@stason.org>
Subject Re: broken apr_brigade_cleanup?
Date Tue, 07 Dec 2004 16:23:07 GMT
Stas Bekman wrote:
> apr_brigade_cleanup looks wrong:
> 
> APU_DECLARE(apr_status_t) apr_brigade_cleanup(void *data)
> {
>     apr_bucket_brigade *b = data;
>     apr_bucket *e;
> 
> shouldn't it be:
> 
>     apr_bucket_brigade *b = (apr_bucket_brigade *)data;
> 
> why does it have (void *data) argument? why is this inconsistent with:
> 
>   APU_DECLARE(apr_status_t) apr_brigade_destroy(apr_bucket_brigade *b);
> 
> it seems to work fine on linux but on windows causes all kind of crashes.

Well, I see why it was made like this. this is because of the cleanup wrapper:

APU_DECLARE(apr_status_t) apr_brigade_destroy(apr_bucket_brigade *b)
{
     apr_pool_cleanup_kill(b->p, b, brigade_cleanup);
     return apr_brigade_cleanup(b);
}

but why apr_brigade_cleanup should be affected? what's wrong with:

static apr_status_t brigade_cleanup(void *data)
{
     return apr_brigade_cleanup((void *)data);
}
APU_DECLARE(apr_status_t) apr_brigade_cleanup(apr_bucket_brigade *b)
{ ... }

-- 
__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

Mime
View raw message