William A. Rowe, Jr. wrote:
At 10:15 AM 12/7/2004, 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.


It shouldn't - all ANSI C compilers should promote any void* type
to an appropriate foo* type silently and without any negative
consequences.

Is it possible you created a mis-aligned apr_bucket_brigade (not
on an appropriate word boundry?)  What module is crashing?  Is
this perl?  C?  C++?

Bill, as I said earlier I can't answer on any of these, since I'm not running on win32.


But I want to report that we fixed the wrapper to use apr_bucket_brigade* instead of void*, and win32 can't be happier than that.

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

Reply via email to