X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=libecoli%2Fecoli_node_helper.c;fp=libecoli%2Fecoli_node_helper.c;h=0000000000000000000000000000000000000000;hb=18d03456d96f7a086a2ccc82ce97fcf056848d90;hp=94811f23ca9041b94e7133a51f64d87643b74cc9;hpb=a1571d413d2acac5d4a4fbdf2e50b2d1a6da3aa6;p=protos%2Flibecoli.git diff --git a/libecoli/ecoli_node_helper.c b/libecoli/ecoli_node_helper.c deleted file mode 100644 index 94811f2..0000000 --- a/libecoli/ecoli_node_helper.c +++ /dev/null @@ -1,94 +0,0 @@ -/* SPDX-License-Identifier: BSD-3-Clause - * Copyright 2018, Olivier MATZ - */ - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -struct ec_node ** -ec_node_config_node_list_to_table(const struct ec_config *config, - size_t *len) -{ - struct ec_node **table = NULL; - struct ec_config *child; - ssize_t n, i; - - *len = 0; - - if (config == NULL) { - errno = EINVAL; - return NULL; - } - - if (ec_config_get_type(config) != EC_CONFIG_TYPE_LIST) { - errno = EINVAL; - return NULL; - } - - n = ec_config_count(config); - if (n < 0) - return NULL; - - table = ec_calloc(n, sizeof(*table)); - if (table == NULL) - goto fail; - - n = 0; - TAILQ_FOREACH(child, &config->list, next) { - if (ec_config_get_type(child) != EC_CONFIG_TYPE_NODE) { - errno = EINVAL; - goto fail; - } - table[n] = ec_node_clone(child->node); - n++; - } - - *len = n; - - return table; - -fail: - if (table != NULL) { - for (i = 0; i < n; i++) - ec_node_free(table[i]); - } - ec_free(table); - - return NULL; -} - -struct ec_config * -ec_node_config_node_list_from_vargs(va_list ap) -{ - struct ec_config *list = NULL; - struct ec_node *node = va_arg(ap, struct ec_node *); - - list = ec_config_list(); - if (list == NULL) - goto fail; - - for (; node != EC_NODE_ENDLIST; node = va_arg(ap, struct ec_node *)) { - if (node == NULL) - goto fail; - - if (ec_config_list_add(list, ec_config_node(node)) < 0) - goto fail; - } - - return list; - -fail: - for (; node != EC_NODE_ENDLIST; node = va_arg(ap, struct ec_node *)) - ec_node_free(node); - ec_config_free(list); - - return NULL; -}