On Thu, 2011-03-03 at 16:33 +0000, Philip Martin wrote:
> Greg Stein <gst...@gmail.com> writes:
> 
> > On Thu, Mar 3, 2011 at 10:35, Hyrum K Wright <hy...@hyrumwright.org> wrote:
> >> On Thu, Mar 3, 2011 at 9:03 AM,  <phi...@apache.org> wrote:
> >>> Author: philip
> >>> Date: Thu Mar  3 15:03:42 2011
> >>> New Revision: 1076645
> >>>
> >>> URL: http://svn.apache.org/viewvc?rev=1076645&view=rev
> >>> Log:
> >>> Wrap pointer in a baton to avoid a complier warning or cast.
> >>
> >> I think a single cast is better than the obfuscation of wrapping a
> >> single value in a baton.  Please reconsider this change.
> >
> > Agreed. I'd much rather see (void *)changelist, than all of this stuff.
> 
> A cast that changes the type, (void *)changelist, or one that just
> removes the qualifier, (char *)changelist?  Casts lead to questions.

Sure a single arg in a struct is a bit ugly.  But I don't like casting
away "const" when we don't need to, as it can be a very useful warning
if we don't have too many false alarms.

Either way is ugly.  C language has these holes in it - in this case,
passing a pointer that may or may not be "const" just isn't well
supported - so we have to do something ugly to work around it.  There's
no clear winner here.

It's hardly obfuscation to pass a structure as a baton: that is the
*normal* pattern for passing args to such a function.  Passing a casted
pointer to a singleton argument is the special case.

- Julian


Reply via email to