add support for a const void * key in avl
This commit is contained in:
parent
e49b34f912
commit
74eddc472d
2 changed files with 6 additions and 5 deletions
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue