git.droids-corp.org
/
protos
/
libecoli.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
hide ec_node structure
[protos/libecoli.git]
/
src
/
ecoli_node_seq.c
diff --git
a/src/ecoli_node_seq.c
b/src/ecoli_node_seq.c
index
ff0c5de
..
6b1a2cd
100644
(file)
--- a/
src/ecoli_node_seq.c
+++ b/
src/ecoli_node_seq.c
@@
-28,29
+28,28
@@
EC_LOG_TYPE_REGISTER(node_seq);
struct ec_node_seq {
EC_LOG_TYPE_REGISTER(node_seq);
struct ec_node_seq {
- struct ec_node gen;
struct ec_node **table;
size_t len;
};
static int
struct ec_node **table;
size_t len;
};
static int
-ec_node_seq_parse(const struct ec_node *
gen_
node,
+ec_node_seq_parse(const struct ec_node *node,
struct ec_parse *state,
const struct ec_strvec *strvec)
{
struct ec_parse *state,
const struct ec_strvec *strvec)
{
- struct ec_node_seq *
node = (struct ec_node_seq *)gen_node
;
+ struct ec_node_seq *
priv = ec_node_priv(node)
;
struct ec_strvec *childvec = NULL;
size_t len = 0;
unsigned int i;
int ret;
struct ec_strvec *childvec = NULL;
size_t len = 0;
unsigned int i;
int ret;
- for (i = 0; i <
node
->len; i++) {
+ for (i = 0; i <
priv
->len; i++) {
childvec = ec_strvec_ndup(strvec, len,
ec_strvec_len(strvec) - len);
if (childvec == NULL)
goto fail;
childvec = ec_strvec_ndup(strvec, len,
ec_strvec_len(strvec) - len);
if (childvec == NULL)
goto fail;
- ret = ec_node_parse_child(
node
->table[i], state, childvec);
+ ret = ec_node_parse_child(
priv
->table[i], state, childvec);
if (ret < 0)
goto fail;
if (ret < 0)
goto fail;
@@
-146,26
+145,26
@@
fail:
}
static int
}
static int
-ec_node_seq_complete(const struct ec_node *
gen_
node,
+ec_node_seq_complete(const struct ec_node *node,
struct ec_comp *comp,
const struct ec_strvec *strvec)
{
struct ec_comp *comp,
const struct ec_strvec *strvec)
{
- struct ec_node_seq *
node = (struct ec_node_seq *)gen_node
;
+ struct ec_node_seq *
priv = ec_node_priv(node)
;
- return __ec_node_seq_complete(
node->table, node
->len, comp,
+ return __ec_node_seq_complete(
priv->table, priv
->len, comp,
strvec);
}
strvec);
}
-static void ec_node_seq_free_priv(struct ec_node *
gen_
node)
+static void ec_node_seq_free_priv(struct ec_node *node)
{
{
- struct ec_node_seq *
node = (struct ec_node_seq *)gen_node
;
+ struct ec_node_seq *
priv = ec_node_priv(node)
;
size_t i;
size_t i;
- for (i = 0; i <
node
->len; i++)
- ec_node_free(
node
->table[i]);
- ec_free(
node
->table);
-
node
->table = NULL;
-
node
->len = 0;
+ for (i = 0; i <
priv
->len; i++)
+ ec_node_free(
priv
->table[i]);
+ ec_free(
priv
->table);
+
priv
->table = NULL;
+
priv
->len = 0;
}
static const struct ec_config_schema ec_node_seq_subschema[] = {
}
static const struct ec_config_schema ec_node_seq_subschema[] = {
@@
-190,10
+189,10
@@
static const struct ec_config_schema ec_node_seq_schema[] = {
},
};
},
};
-static int ec_node_seq_set_config(struct ec_node *
gen_
node,
+static int ec_node_seq_set_config(struct ec_node *node,
const struct ec_config *config)
{
const struct ec_config *config)
{
- struct ec_node_seq *
node = (struct ec_node_seq *)gen_node
;
+ struct ec_node_seq *
priv = ec_node_priv(node)
;
struct ec_node **table = NULL;
size_t i, len = 0;
struct ec_node **table = NULL;
size_t i, len = 0;
@@
-202,11
+201,11
@@
static int ec_node_seq_set_config(struct ec_node *gen_node,
if (table == NULL)
goto fail;
if (table == NULL)
goto fail;
- for (i = 0; i <
node
->len; i++)
- ec_node_free(
node
->table[i]);
- ec_free(
node
->table);
-
node
->table = table;
-
node
->len = len;
+ for (i = 0; i <
priv
->len; i++)
+ ec_node_free(
priv
->table[i]);
+ ec_free(
priv
->table);
+
priv
->table = table;
+
priv
->len = len;
return 0;
return 0;
@@
-218,24
+217,24
@@
fail:
}
static size_t
}
static size_t
-ec_node_seq_get_children_count(const struct ec_node *
gen_
node)
+ec_node_seq_get_children_count(const struct ec_node *node)
{
{
- struct ec_node_seq *
node = (struct ec_node_seq *)gen_node
;
- return
node
->len;
+ struct ec_node_seq *
priv = ec_node_priv(node)
;
+ return
priv
->len;
}
static int
}
static int
-ec_node_seq_get_child(const struct ec_node *
gen_
node, size_t i,
+ec_node_seq_get_child(const struct ec_node *node, size_t i,
struct ec_node **child, unsigned int *refs)
{
struct ec_node **child, unsigned int *refs)
{
- struct ec_node_seq *
node = (struct ec_node_seq *)gen_node
;
+ struct ec_node_seq *
priv = ec_node_priv(node)
;
- if (i >=
node
->len)
+ if (i >=
priv
->len)
return -1;
return -1;
- *child =
node
->table[i];
+ *child =
priv
->table[i];
/* each child node is referenced twice: once in the config and
/* each child node is referenced twice: once in the config and
- * once in the
node
->table[] */
+ * once in the
priv
->table[] */
*refs = 2;
return 0;
}
*refs = 2;
return 0;
}
@@
-254,9
+253,8
@@
static struct ec_node_type ec_node_seq_type = {
EC_NODE_TYPE_REGISTER(ec_node_seq_type);
EC_NODE_TYPE_REGISTER(ec_node_seq_type);
-int ec_node_seq_add(struct ec_node *
gen_
node, struct ec_node *child)
+int ec_node_seq_add(struct ec_node *node, struct ec_node *child)
{
{
- struct ec_node_seq *node = (struct ec_node_seq *)gen_node;
const struct ec_config *cur_config = NULL;
struct ec_config *config = NULL, *children;
int ret;
const struct ec_config *cur_config = NULL;
struct ec_config *config = NULL, *children;
int ret;
@@
-265,10
+263,10
@@
int ec_node_seq_add(struct ec_node *gen_node, struct ec_node *child)
/* XXX factorize this code in a helper */
/* XXX factorize this code in a helper */
- if (ec_node_check_type(
gen_
node, &ec_node_seq_type) < 0)
+ if (ec_node_check_type(node, &ec_node_seq_type) < 0)
goto fail;
goto fail;
- cur_config = ec_node_get_config(
gen_
node);
+ cur_config = ec_node_get_config(node);
if (cur_config == NULL)
config = ec_config_dict();
else
if (cur_config == NULL)
config = ec_config_dict();
else
@@
-291,7
+289,7
@@
int ec_node_seq_add(struct ec_node *gen_node, struct ec_node *child)
goto fail;
}
goto fail;
}
- ret = ec_node_set_config(
gen_
node, config);
+ ret = ec_node_set_config(node, config);
config = NULL; /* freed */
if (ret < 0)
goto fail;
config = NULL; /* freed */
if (ret < 0)
goto fail;
@@
-307,7
+305,7
@@
fail:
struct ec_node *__ec_node_seq(const char *id, ...)
{
struct ec_config *config = NULL, *children = NULL;
struct ec_node *__ec_node_seq(const char *id, ...)
{
struct ec_config *config = NULL, *children = NULL;
- struct ec_node *
gen_
node = NULL;
+ struct ec_node *node = NULL;
struct ec_node *child;
va_list ap;
int ret;
struct ec_node *child;
va_list ap;
int ret;
@@
-315,8
+313,8
@@
struct ec_node *__ec_node_seq(const char *id, ...)
va_start(ap, id);
child = va_arg(ap, struct ec_node *);
va_start(ap, id);
child = va_arg(ap, struct ec_node *);
-
gen_
node = ec_node_from_type(&ec_node_seq_type, id);
- if (
gen_
node == NULL)
+ node = ec_node_from_type(&ec_node_seq_type, id);
+ if (node == NULL)
goto fail_free_children;
config = ec_config_dict();
goto fail_free_children;
config = ec_config_dict();
@@
-343,20
+341,20
@@
struct ec_node *__ec_node_seq(const char *id, ...)
}
children = NULL;
}
children = NULL;
- ret = ec_node_set_config(
gen_
node, config);
+ ret = ec_node_set_config(node, config);
config = NULL; /* freed */
if (ret < 0)
goto fail;
va_end(ap);
config = NULL; /* freed */
if (ret < 0)
goto fail;
va_end(ap);
- return
gen_
node;
+ return node;
fail_free_children:
for (; child != EC_NODE_ENDLIST; child = va_arg(ap, struct ec_node *))
ec_node_free(child);
fail:
fail_free_children:
for (; child != EC_NODE_ENDLIST; child = va_arg(ap, struct ec_node *))
ec_node_free(child);
fail:
- ec_node_free(
gen_
node); /* will also free added children */
+ ec_node_free(node); /* will also free added children */
ec_config_free(children);
ec_config_free(config);
va_end(ap);
ec_config_free(children);
ec_config_free(config);
va_end(ap);