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 event_source *ev;
|
||||||
struct ubus_object *obj;
|
struct ubus_object *obj;
|
||||||
struct blob_attr *attr[EVREG_LAST];
|
struct blob_attr *attr[EVREG_LAST];
|
||||||
char *pattern;
|
char *pattern, *name;
|
||||||
uint32_t id;
|
uint32_t id;
|
||||||
bool partial = false;
|
bool partial = false;
|
||||||
int len;
|
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);
|
list_add(&ev->list, &obj->events);
|
||||||
ev->obj = obj;
|
ev->obj = obj;
|
||||||
ev->partial = partial;
|
ev->partial = partial;
|
||||||
ev->avl.key = (void *) (ev + 1);
|
name = (char *) (ev + 1);
|
||||||
strcpy(ev->avl.key, pattern);
|
strcpy(name, pattern);
|
||||||
|
ev->avl.key = name;
|
||||||
avl_insert(&patterns, &ev->avl);
|
avl_insert(&patterns, &ev->avl);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -135,7 +135,7 @@ struct ubus_object *ubusd_create_object(struct ubus_client *cl, struct blob_attr
|
||||||
goto free;
|
goto free;
|
||||||
|
|
||||||
if (avl_insert(&path, &obj->path) != 0) {
|
if (avl_insert(&path, &obj->path) != 0) {
|
||||||
free(obj->path.key);
|
free((void *) obj->path.key);
|
||||||
obj->path.key = NULL;
|
obj->path.key = NULL;
|
||||||
goto free;
|
goto free;
|
||||||
}
|
}
|
||||||
|
@ -158,7 +158,7 @@ void ubusd_free_object(struct ubus_object *obj)
|
||||||
if (obj->path.key) {
|
if (obj->path.key) {
|
||||||
ubusd_send_obj_event(obj, false);
|
ubusd_send_obj_event(obj, false);
|
||||||
avl_delete(&path, &obj->path);
|
avl_delete(&path, &obj->path);
|
||||||
free(obj->path.key);
|
free((void *) obj->path.key);
|
||||||
}
|
}
|
||||||
if (!list_empty(&obj->list))
|
if (!list_empty(&obj->list))
|
||||||
list_del(&obj->list);
|
list_del(&obj->list);
|
||||||
|
|
Loading…
Add table
Reference in a new issue