Change-Id: If8b4a2b8773e5e7ce3ae62839193c611eefcb811
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
int (*get_verbosity)(void *closure);
void (*set_verbosity)(void *closure, int level);
struct json_object *(*describe)(void *closure);
int (*get_verbosity)(void *closure);
void (*set_verbosity)(void *closure, int level);
struct json_object *(*describe)(void *closure);
+ void (*unref)(void *closure);
*/
int afb_apiset_del(struct afb_apiset *set, const char *name)
{
*/
int afb_apiset_del(struct afb_apiset *set, const char *name)
{
+ struct api_desc *i, *e;
+ int c;
- for (i = 0 ; i < set->count ; i++) {
- c = strcasecmp(set->apis[i].name, name);
+ i = set->apis;
+ e = i + set->count;
+ while (i != e) {
+ c = strcasecmp(i->name, name);
+ if (i->api.itf->unref)
+ i->api.itf->unref(i->api.closure);
- while(i < set->count) {
- set->apis[i] = set->apis[i + 1];
+ e--;
+ while (i != e) {
+ i[0] = i[1];
i++;
}
return 0;
}
if (c > 0)
break;
i++;
}
return 0;
}
if (c > 0)
break;
}
errno = ENOENT;
return -1;
}
errno = ENOENT;
return -1;