Add auto subscribe support
[project/ubus.git] / ubusd_obj.c
index 08314732567e7c03f066ae8d4c5faad22f381eff..dd44882e08d57e44ea983a1fdbbed58897204757 100644 (file)
@@ -20,13 +20,12 @@ struct avl_tree path;
 
 static void ubus_unref_object_type(struct ubus_object_type *type)
 {
-       struct ubus_method *m;
+       struct ubus_method *m, *tmp;
 
        if (--type->refcount > 0)
                return;
 
-       while (!list_empty(&type->methods)) {
-               m = list_first_entry(&type->methods, struct ubus_method, list);
+       list_for_each_entry_safe(m, tmp, &type->methods, list) {
                list_del(&m->list);
                free(m);
        }
@@ -55,7 +54,7 @@ static struct ubus_object_type *ubus_create_obj_type(struct blob_attr *sig)
 {
        struct ubus_object_type *type;
        struct blob_attr *pos;
-       int rem;
+       size_t rem;
 
        type = calloc(1, sizeof(*type));
        if (!type)