aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/afb-api-v3.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/afb-api-v3.c b/src/afb-api-v3.c
index 02853b12..7f63b6eb 100644
--- a/src/afb-api-v3.c
+++ b/src/afb-api-v3.c
@@ -325,19 +325,16 @@ int afb_api_v3_del_verb(
const char *verb,
void **vcbdata)
{
- struct afb_verb_v3 **v, **e, *i;
+ struct afb_verb_v3 *v;
+ int i;
- v = api->verbs;
- e = &v[api->count];
- while (v != e) {
- i = *v++;
- if (!strcasecmp(i->verb, verb)) {
- api->count--;
+ for (i = 0 ; i < api->count ; i++) {
+ v = api->verbs[i];
+ if (!strcasecmp(verb, v->verb)) {
+ api->verbs[i] = api->verbs[--api->count];
if (vcbdata)
- *vcbdata = i->vcbdata;
- if (v != e)
- *--v = *--e;
- free(i);
+ *vcbdata = v->vcbdata;
+ free(v);
return 0;
}
}