add support for a const void * key in avl

This commit is contained in:
Felix Fietkau 2011-04-13 20:13:42 +02:00
parent e49b34f912
commit 74eddc472d
2 changed files with 6 additions and 5 deletions

View file

@ -46,7 +46,7 @@ static int ubusd_alloc_event_pattern(struct ubus_client *cl, struct blob_attr *m
struct event_source *ev;
struct ubus_object *obj;
struct blob_attr *attr[EVREG_LAST];
char *pattern;
char *pattern, *name;
uint32_t id;
bool partial = false;
int len;
@ -82,8 +82,9 @@ static int ubusd_alloc_event_pattern(struct ubus_client *cl, struct blob_attr *m
list_add(&ev->list, &obj->events);
ev->obj = obj;
ev->partial = partial;
ev->avl.key = (void *) (ev + 1);
strcpy(ev->avl.key, pattern);
name = (char *) (ev + 1);
strcpy(name, pattern);
ev->avl.key = name;
avl_insert(&patterns, &ev->avl);
return 0;

View file

@ -135,7 +135,7 @@ struct ubus_object *ubusd_create_object(struct ubus_client *cl, struct blob_attr
goto free;
if (avl_insert(&path, &obj->path) != 0) {
free(obj->path.key);
free((void *) obj->path.key);
obj->path.key = NULL;
goto free;
}
@ -158,7 +158,7 @@ void ubusd_free_object(struct ubus_object *obj)
if (obj->path.key) {
ubusd_send_obj_event(obj, false);
avl_delete(&path, &obj->path);
free(obj->path.key);
free((void *) obj->path.key);
}
if (!list_empty(&obj->list))
list_del(&obj->list);