Code Review
/
src
/
app-framework-binder.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
afb-apiset: manage deletion of apis
[src/app-framework-binder.git]
/
src
/
afb-apiset.c
diff --git
a/src/afb-apiset.c
b/src/afb-apiset.c
index
a373c20
..
8d76bbf
100644
(file)
--- a/
src/afb-apiset.c
+++ b/
src/afb-apiset.c
@@
-264,21
+264,28
@@
error:
*/
int afb_apiset_del(struct afb_apiset *set, const char *name)
{
*/
int afb_apiset_del(struct afb_apiset *set, const char *name)
{
- int i, c;
+ struct api_desc *i, *e;
+ int c;
/* search the api */
/* search the api */
- 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 (c == 0) {
if (c == 0) {
+ if (i->api.itf->unref)
+ i->api.itf->unref(i->api.closure);
set->count--;
set->count--;
- 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;
+ i++;
}
errno = ENOENT;
return -1;
}
errno = ENOENT;
return -1;