geany
1.38
About: Geany is a text editor (using GTK2) with basic features of an integrated development environment (syntax highlighting, code folding, symbol name auto-completion, ...). F: office T: editor programming GTK+ IDE
![]() ![]() |
Go to the source code of this file.
Classes | |
struct | rb_node |
struct | rb_root |
Macros | |
#define | container_of(ptr, type, member) ((type *)( (char *)ptr - offsetof(type,member))) |
#define | offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) |
#define | NULL ((void *)0) |
#define | RB_RED 0 |
#define | RB_BLACK 1 |
#define | rb_parent(r) ((struct rb_node *)((r)->rb_parent_color & ~3)) |
#define | rb_color(r) ((r)->rb_parent_color & 1) |
#define | rb_is_red(r) (!rb_color(r)) |
#define | rb_is_black(r) rb_color(r) |
#define | rb_set_red(r) do { (r)->rb_parent_color &= ~1; } while (0) |
#define | rb_set_black(r) do { (r)->rb_parent_color |= 1; } while (0) |
#define | RB_ROOT (struct rb_root) { NULL, } |
#define | rb_entry(ptr, type, member) container_of(ptr, type, member) |
#define | RB_EMPTY_ROOT(root) ((root)->rb_node == NULL) |
#define | RB_EMPTY_NODE(node) (rb_parent(node) == node) |
#define | RB_CLEAR_NODE(node) (rb_set_parent(node, node)) |
Typedefs | |
typedef void(* | rb_augment_f) (struct rb_node *node, void *data) |
Functions | |
static void | rb_set_parent (struct rb_node *rb, struct rb_node *p) |
static void | rb_set_color (struct rb_node *rb, int color) |
static void | rb_init_node (struct rb_node *rb) |
void | rb_insert_color (struct rb_node *, struct rb_root *) |
void | rb_erase (struct rb_node *, struct rb_root *) |
void | rb_augment_insert (struct rb_node *node, rb_augment_f func, void *data) |
struct rb_node * | rb_augment_erase_begin (struct rb_node *node) |
void | rb_augment_erase_end (struct rb_node *node, rb_augment_f func, void *data) |
struct rb_node * | rb_next (const struct rb_node *) |
struct rb_node * | rb_prev (const struct rb_node *) |
struct rb_node * | rb_first (const struct rb_root *) |
struct rb_node * | rb_last (const struct rb_root *) |
void | rb_replace_node (struct rb_node *victim, struct rb_node *new, struct rb_root *root) |
static void | rb_link_node (struct rb_node *node, struct rb_node *parent, struct rb_node **rb_link) |
#define offsetof | ( | TYPE, | |
MEMBER | |||
) | ((size_t) &((TYPE *)0)->MEMBER) |
#define RB_CLEAR_NODE | ( | node | ) | (rb_set_parent(node, node)) |
#define rb_entry | ( | ptr, | |
type, | |||
member | |||
) | container_of(ptr, type, member) |
#define rb_parent | ( | r | ) | ((struct rb_node *)((r)->rb_parent_color & ~3)) |
#define rb_set_black | ( | r | ) | do { (r)->rb_parent_color |= 1; } while (0) |
#define rb_set_red | ( | r | ) | do { (r)->rb_parent_color &= ~1; } while (0) |
typedef void(* rb_augment_f) (struct rb_node *node, void *data) |
Definition at line 337 of file rbtree.c.
References rb_node::rb_left, rb_next(), rb_parent, and rb_node::rb_right.
void rb_augment_erase_end | ( | struct rb_node * | node, |
rb_augment_f | func, | ||
void * | data | ||
) |
Definition at line 362 of file rbtree.c.
References rb_augment_path().
void rb_augment_insert | ( | struct rb_node * | node, |
rb_augment_f | func, | ||
void * | data | ||
) |
Definition at line 323 of file rbtree.c.
References rb_augment_path(), rb_node::rb_left, and rb_node::rb_right.
Definition at line 233 of file rbtree.c.
References __rb_erase_color(), color, NULL, RB_BLACK, rb_color, rb_node::rb_left, rb_root::rb_node, rb_parent, rb_node::rb_parent_color, rb_node::rb_right, and rb_set_parent().
Definition at line 371 of file rbtree.c.
References NULL, rb_node::rb_left, and rb_root::rb_node.
|
static |
Definition at line 192 of file rbtree.h.
References NULL, RB_CLEAR_NODE, rb_node::rb_left, rb_node::rb_parent_color, and rb_node::rb_right.
Definition at line 88 of file rbtree.c.
References __rb_rotate_left(), __rb_rotate_right(), rb_is_red, rb_node::rb_left, rb_root::rb_node, rb_parent, rb_node::rb_right, rb_set_black, and rb_set_red.
Referenced by corkSymtabPut().
Definition at line 383 of file rbtree.c.
References NULL, rb_root::rb_node, and rb_node::rb_right.
Referenced by foreachEntriesInScope().
|
static |
Definition at line 221 of file rbtree.h.
References NULL, rb_node::rb_left, rb_node::rb_parent_color, and rb_node::rb_right.
Referenced by corkSymtabPut().
Definition at line 395 of file rbtree.c.
References NULL, rb_node::rb_left, rb_parent, and rb_node::rb_right.
Referenced by foreachEntriesInScope(), and rb_augment_erase_begin().
Definition at line 423 of file rbtree.c.
References NULL, rb_node::rb_left, rb_parent, and rb_node::rb_right.
Referenced by foreachEntriesInScope().
Definition at line 447 of file rbtree.c.
References rb_node::rb_left, rb_root::rb_node, rb_parent, rb_node::rb_right, and rb_set_parent().
|
static |
Definition at line 180 of file rbtree.h.
References color, and rb_node::rb_parent_color.
Referenced by __rb_erase_color().
Definition at line 176 of file rbtree.h.
References rb_node::rb_parent_color.
Referenced by __rb_rotate_left(), __rb_rotate_right(), rb_erase(), and rb_replace_node().