diff options
author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2009-01-10 06:12:09 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-10 09:04:33 -0500 |
commit | f4b477c47332367d35686bd2b808c2156b96d7c7 (patch) | |
tree | ab8a2cf098b69be9ed7a44426106a7af596241d9 | |
parent | cfce41a6d643c001d416ead960caf04fae2d609a (diff) |
rbtree: add const qualifier to some functions
The 'rb_first()', 'rb_last()', 'rb_next()' and 'rb_prev()' calls
take a pointer to an RB node or RB root. They do not change the
pointed objects, so add a 'const' qualifier in order to make life
of the users of these functions easier.
Indeed, if I have my own constant pointer &const struct my_type *p,
and I call 'rb_next(&p->rb)', I get a GCC warning:
warning: passing argument 1 of ‘rb_next’ discards qualifiers from pointer target type
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | include/linux/rbtree.h | 8 | ||||
-rw-r--r-- | lib/rbtree.c | 12 |
2 files changed, 10 insertions, 10 deletions
diff --git a/include/linux/rbtree.h b/include/linux/rbtree.h index 344bc3495ddb..9c295411d01f 100644 --- a/include/linux/rbtree.h +++ b/include/linux/rbtree.h | |||
@@ -140,10 +140,10 @@ extern void rb_insert_color(struct rb_node *, struct rb_root *); | |||
140 | extern void rb_erase(struct rb_node *, struct rb_root *); | 140 | extern void rb_erase(struct rb_node *, struct rb_root *); |
141 | 141 | ||
142 | /* Find logical next and previous nodes in a tree */ | 142 | /* Find logical next and previous nodes in a tree */ |
143 | extern struct rb_node *rb_next(struct rb_node *); | 143 | extern struct rb_node *rb_next(const struct rb_node *); |
144 | extern struct rb_node *rb_prev(struct rb_node *); | 144 | extern struct rb_node *rb_prev(const struct rb_node *); |
145 | extern struct rb_node *rb_first(struct rb_root *); | 145 | extern struct rb_node *rb_first(const struct rb_root *); |
146 | extern struct rb_node *rb_last(struct rb_root *); | 146 | extern struct rb_node *rb_last(const struct rb_root *); |
147 | 147 | ||
148 | /* Fast replacement of a single node without remove/rebalance/add/rebalance */ | 148 | /* Fast replacement of a single node without remove/rebalance/add/rebalance */ |
149 | extern void rb_replace_node(struct rb_node *victim, struct rb_node *new, | 149 | extern void rb_replace_node(struct rb_node *victim, struct rb_node *new, |
diff --git a/lib/rbtree.c b/lib/rbtree.c index 48499c2d88cc..9956b99649f0 100644 --- a/lib/rbtree.c +++ b/lib/rbtree.c | |||
@@ -292,7 +292,7 @@ EXPORT_SYMBOL(rb_erase); | |||
292 | /* | 292 | /* |
293 | * This function returns the first node (in sort order) of the tree. | 293 | * This function returns the first node (in sort order) of the tree. |
294 | */ | 294 | */ |
295 | struct rb_node *rb_first(struct rb_root *root) | 295 | struct rb_node *rb_first(const struct rb_root *root) |
296 | { | 296 | { |
297 | struct rb_node *n; | 297 | struct rb_node *n; |
298 | 298 | ||
@@ -305,7 +305,7 @@ struct rb_node *rb_first(struct rb_root *root) | |||
305 | } | 305 | } |
306 | EXPORT_SYMBOL(rb_first); | 306 | EXPORT_SYMBOL(rb_first); |
307 | 307 | ||
308 | struct rb_node *rb_last(struct rb_root *root) | 308 | struct rb_node *rb_last(const struct rb_root *root) |
309 | { | 309 | { |
310 | struct rb_node *n; | 310 | struct rb_node *n; |
311 | 311 | ||
@@ -318,7 +318,7 @@ struct rb_node *rb_last(struct rb_root *root) | |||
318 | } | 318 | } |
319 | EXPORT_SYMBOL(rb_last); | 319 | EXPORT_SYMBOL(rb_last); |
320 | 320 | ||
321 | struct rb_node *rb_next(struct rb_node *node) | 321 | struct rb_node *rb_next(const struct rb_node *node) |
322 | { | 322 | { |
323 | struct rb_node *parent; | 323 | struct rb_node *parent; |
324 | 324 | ||
@@ -331,7 +331,7 @@ struct rb_node *rb_next(struct rb_node *node) | |||
331 | node = node->rb_right; | 331 | node = node->rb_right; |
332 | while (node->rb_left) | 332 | while (node->rb_left) |
333 | node=node->rb_left; | 333 | node=node->rb_left; |
334 | return node; | 334 | return (struct rb_node *)node; |
335 | } | 335 | } |
336 | 336 | ||
337 | /* No right-hand children. Everything down and left is | 337 | /* No right-hand children. Everything down and left is |
@@ -347,7 +347,7 @@ struct rb_node *rb_next(struct rb_node *node) | |||
347 | } | 347 | } |
348 | EXPORT_SYMBOL(rb_next); | 348 | EXPORT_SYMBOL(rb_next); |
349 | 349 | ||
350 | struct rb_node *rb_prev(struct rb_node *node) | 350 | struct rb_node *rb_prev(const struct rb_node *node) |
351 | { | 351 | { |
352 | struct rb_node *parent; | 352 | struct rb_node *parent; |
353 | 353 | ||
@@ -360,7 +360,7 @@ struct rb_node *rb_prev(struct rb_node *node) | |||
360 | node = node->rb_left; | 360 | node = node->rb_left; |
361 | while (node->rb_right) | 361 | while (node->rb_right) |
362 | node=node->rb_right; | 362 | node=node->rb_right; |
363 | return node; | 363 | return (struct rb_node *)node; |
364 | } | 364 | } |
365 | 365 | ||
366 | /* No left-hand children. Go up till we find an ancestor which | 366 | /* No left-hand children. Go up till we find an ancestor which |