David Laight wrote: > On Tue, Apr 22, 2008 at 11:50:05PM +0900, Dmitry Timoshkov wrote: > > "Erik de Castro Lopo" <[EMAIL PROTECTED]> wrote: > > > > > /* get pointer to object containing list element */ > > > #define LIST_ENTRY(elem, type, field) \ > > > - ((type *)((char *)(elem) - (unsigned int)(&((type *)0)->field))) > > > + ((type *)((char *)(elem) - (unsigned long)(&((type *)0)->field))) > > How about: > ((type *)((char *)(elem) - ((char *)(&((type *)0)->field) - (char *)0)))
Much, much better, thank you. I don't know why I didn't see it myself. Cheers, Erik -- ----------------------------------------------------------------- Erik de Castro Lopo ----------------------------------------------------------------- "I saw `cout' being shifted "Hello world" times to the left and stopped right there." -- Steve Gonedes