mirror of
git://projects.qi-hardware.com/wernermisc.git
synced 2024-11-26 02:57:10 +02:00
qpkg/jrb.c (mk_new_ext): converted from macro to function
This commit is contained in:
parent
009f56c927
commit
5a422a470d
26
qpkg/jrb.c
26
qpkg/jrb.c
@ -94,13 +94,19 @@ static void delete_item(JRB item) /* Deletes an arbitrary iterm */
|
|||||||
item->blink->flink = item->flink;
|
item->blink->flink = item->flink;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define mk_new_ext(new, kkkey, vvval) { \
|
|
||||||
new = (JRB) malloc(sizeof(struct jrb_node)); \
|
static JRB mk_new_ext(void *key, void *val)
|
||||||
new->val = vvval; \
|
{
|
||||||
new->key = kkkey; \
|
JRB new;
|
||||||
setext(new); \
|
|
||||||
setblack(new); \
|
new = (JRB) malloc(sizeof(struct jrb_node));
|
||||||
setnormal(new); \
|
new->val = val;
|
||||||
|
new->key = key;
|
||||||
|
setext(new);
|
||||||
|
setblack(new);
|
||||||
|
setnormal(new);
|
||||||
|
|
||||||
|
return new;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mk_new_int(JRB l, JRB r, JRB p, int il)
|
static void mk_new_int(JRB l, JRB r, JRB p, int il)
|
||||||
@ -230,14 +236,14 @@ static JRB jrb_insert_b(JRB n, void *key, void *val)
|
|||||||
|
|
||||||
if (ishead(n)) {
|
if (ishead(n)) {
|
||||||
if (n->parent == n) { /* Tree is empty */
|
if (n->parent == n) { /* Tree is empty */
|
||||||
mk_new_ext(newnode, key, val);
|
newnode = mk_new_ext(key, val);
|
||||||
insert(newnode, n);
|
insert(newnode, n);
|
||||||
n->parent = newnode;
|
n->parent = newnode;
|
||||||
newnode->parent = n;
|
newnode->parent = n;
|
||||||
setroot(newnode);
|
setroot(newnode);
|
||||||
return newnode;
|
return newnode;
|
||||||
} else {
|
} else {
|
||||||
mk_new_ext(newright, key, val);
|
newright = mk_new_ext(key, val);
|
||||||
insert(newright, n);
|
insert(newright, n);
|
||||||
newleft = newright->blink;
|
newleft = newright->blink;
|
||||||
setnormal(newleft);
|
setnormal(newleft);
|
||||||
@ -249,7 +255,7 @@ static JRB jrb_insert_b(JRB n, void *key, void *val)
|
|||||||
return newright;
|
return newright;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
mk_new_ext(newleft, key, val);
|
newleft = mk_new_ext(key, val);
|
||||||
insert(newleft, n);
|
insert(newleft, n);
|
||||||
setnormal(n);
|
setnormal(n);
|
||||||
mk_new_int(newleft, n, n->parent, isleft(n));
|
mk_new_int(newleft, n, n->parent, isleft(n));
|
||||||
|
Loading…
Reference in New Issue
Block a user