You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by "William A. Rowe, Jr." <wr...@rowe-clan.net> on 2008/06/30 19:17:26 UTC

[Fwd: connobject.c broke with apr 1.3.2]

Guys, please take a look, looks like one of the 1.3.x generation patches
has broken our API compatibility rules.


Re: [Fwd: connobject.c broke with apr 1.3.2]

Posted by Ruediger Pluem <rp...@apache.org>.

On 06/30/2008 08:28 PM, Tom Donovan wrote:
> William A. Rowe, Jr. wrote:
>> Guys, please take a look, looks like one of the 1.3.x generation patches
>> has broken our API compatibility rules.
>>
> It looks like this has always been wrong in mod_python.
> 
> APR_BRIGADE_SENTINEL takes a brigade argument, not a bucket.

I agree. This has been the case for as long as I can remember and svn blame
proves that this has been this way for ages:

http://svn.apache.org/viewvc?view=rev&revision=58049

> 
> refs:
> http://apr.apache.org/docs/apr-util/1.3/group___a_p_r___util___bucket___brigades.html#g858da66dccab1e063415678bb115788a 
> 
> http://apr.apache.org/docs/apr-util/0.9/group__APR__Util__Bucket__Brigades.html#g858da66dccab1e063415678bb115788a 
> 
> 
> 
> I think no error displayed pre-1.3.2 because, unfortunately, both 
> buckets and brigades have a member named 'list':
> 
>    For buckets - 'list' is a pointer to the allocator function.
>    For brigades, 'list' is the ring of buckets.
> 
> The condition was probably never true when he was checking the wrong 
> kind of 'list' for a brigade sentinel.  Well, hopefully it was never true!

Good points.

Regards

RĂ¼diger


Re: [Fwd: connobject.c broke with apr 1.3.2]

Posted by Tom Donovan <do...@bellatlantic.net>.
William A. Rowe, Jr. wrote:
> Guys, please take a look, looks like one of the 1.3.x generation patches
> has broken our API compatibility rules.
> 
It looks like this has always been wrong in mod_python.

APR_BRIGADE_SENTINEL takes a brigade argument, not a bucket.

refs:
http://apr.apache.org/docs/apr-util/1.3/group___a_p_r___util___bucket___brigades.html#g858da66dccab1e063415678bb115788a
http://apr.apache.org/docs/apr-util/0.9/group__APR__Util__Bucket__Brigades.html#g858da66dccab1e063415678bb115788a


I think no error displayed pre-1.3.2 because, unfortunately, both buckets and brigades have a member 
named 'list':

    For buckets - 'list' is a pointer to the allocator function.
    For brigades, 'list' is the ring of buckets.

The condition was probably never true when he was checking the wrong kind of 'list' for a brigade 
sentinel.  Well, hopefully it was never true!

-tom-


Re: [Fwd: connobject.c broke with apr 1.3.2]

Posted by Bojan Smojver <bo...@rexursive.com>.
On Tue, 2008-07-01 at 07:26 +1000, Bojan Smojver wrote:

> I'll bet $5 that this broke it:

Yep, GCC will say:

error: request for member 'next' in something not a structure or union

-- 
Bojan


Re: [Fwd: connobject.c broke with apr 1.3.2]

Posted by Bojan Smojver <bo...@rexursive.com>.
On Tue, 2008-07-01 at 07:26 +1000, Bojan Smojver wrote:

> http://svn.apache.org/viewvc/apr/apr/trunk/include/apr_ring.h?r1=566349&r2=662299

BTW, this calls for docs regeneration, so that people can see what that
macro actually does. I'll do that once we release 1.3.3.

-- 
Bojan


Re: [Fwd: connobject.c broke with apr 1.3.2]

Posted by Bojan Smojver <bo...@rexursive.com>.
On Mon, 2008-06-30 at 12:17 -0500, William A. Rowe, Jr. wrote:
> Guys, please take a look, looks like one of the 1.3.x generation patches
> has broken our API compatibility rules.

I'll bet $5 that this broke it:

http://svn.apache.org/viewvc/apr/apr/trunk/include/apr_ring.h?r1=566349&r2=662299

However, calling APR_BRIGADE_SENTINEL on a bucket is the wrong thing to
do, so I think mod_python folks should fix their code.

-- 
Bojan