completed = ec_calloc(1, sizeof(*completed));
if (completed == NULL)
- return NULL;
+ goto fail;
TAILQ_INIT(&completed->nodes);
+ completed->attrs = ec_keyval();
+ if (completed->attrs == NULL)
+ goto fail;
+
return completed;
+
+ fail:
+ if (completed != NULL)
+ ec_keyval_free(completed->attrs);
+ ec_free(completed);
+
+ return NULL;
}
/* XXX on error, states are not freed ?
item = ec_calloc(1, sizeof(*item));
if (item == NULL)
- return NULL;
+ goto fail;
+
+ item->attrs = ec_keyval();
+ if (item->attrs == NULL)
+ goto fail;
/* get path len */
for (p = state, len = 0; p != NULL;
ec_free(item->path);
ec_free(item->str);
ec_free(item->display);
+ ec_keyval_free(item->attrs);
}
- ec_completed_item_free(item);
+ ec_free(item);
return NULL;
}
fail:
ec_free(display_copy);
return ret;
-
}
int
ec_free(item->str);
ec_free(item->display);
ec_free(item->path);
+ ec_keyval_free(item->attrs);
ec_free(item);
}
}
ec_free(compnode);
}
+ ec_keyval_free(completed->attrs);
ec_free(completed);
}