tech-misc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: sys/event.h's kevent.udata and c++



* Jeremy C. Reed <reed%reedmedia.net@localhost> [100527 15:43] wrote:
> On Thu, 27 May 2010, Alfred Perlstein wrote:
> 
> > * Jeremy C. Reed <reed%reedmedia.net@localhost> [100527 14:32] wrote:
> > > For src/sys/sys/event.h
> > > 
> > > I am told that kevent.udata should maybe be void * since C++ doesn't 
> > > allow the naive conversion from a pointer type to integer. Apparently 
> > > some other systems have that has void *.
> > > 
> > > Before I change I get errors like:
> > > 
> > > ../../../ext/asio/asio/detail/kqueue_reactor.hpp: In member function 
> > > 'void asio::detail::kqueue_reactor::start_op(int, 
> > > asio::detail::socket_type, 
> > > asio::detail::kqueue_reactor::descriptor_state*&, 
> > > asio::detail::reactor_op*, bool)':
> > > ../../../ext/asio/asio/detail/kqueue_reactor.hpp:180: error: invalid 
> > > conversion from 'asio::detail::kqueue_reactor::descriptor_state*' to 
> > > '__intptr_t'
> > > 
> > > Okay to change that?
> > 
> > It looks like udata is already void* in head:
> > 
> > http://svn.freebsd.org/viewvc/base/head/sys/sys/event.h?revision=201350&view=markup
> > 
> > ?
> 
> Thanks for the FreeBSD example.
> 
> Okay for me to do the same in NetBSD?
> 
> :)

Oops, I got my lists confused! :)

I'm not a NetBSD guru, so I'm not sure if that will be OK.

There's probably a cast you should be using.  Using intptr_t
is probably superior to void*.  I think this is just C++
being pedantic about casts.

-- 
- Alfred Perlstein
.- AMA, VMOA #5191, 03 vmax, 92 gs500, 85 ch250, 07 zx10
.- FreeBSD committer


Home | Main Index | Thread Index | Old Index