Use, in the rb_entry definition, the offsetof macro instead of reinventing the
wheel.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <[email protected]>
---
linux-2.6.9-current-paolo/include/linux/rbtree.h | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
diff -puN include/linux/rbtree.h~use-offsetof-rb_entry include/linux/rbtree.h
--- linux-2.6.9-current/include/linux/rbtree.h~use-offsetof-rb_entry 2004-10-07 16:11:27.590555976 +0200
+++ linux-2.6.9-current-paolo/include/linux/rbtree.h 2004-10-07 16:11:27.592555672 +0200
@@ -114,7 +114,7 @@ struct rb_root
#define RB_ROOT (struct rb_root) { NULL, }
#define rb_entry(ptr, type, member) \
- ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))
+ ((type *)((char *)(ptr) - offsetof(type, member)))
extern void rb_insert_color(struct rb_node *, struct rb_root *);
extern void rb_erase(struct rb_node *, struct rb_root *);
_
On Thu, Oct 07, 2004 at 07:53:42PM +0200, [email protected] wrote:
>
> Use, in the rb_entry definition, the offsetof macro instead of reinventing the
> wheel.
Or just use container_of - which has the additional benefit of beeing typesafe.