X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Fecoli_node_re_lex.c;h=0120367ecff6f710cceb77e4ed4eb3dbf1983d87;hb=51028779e0a8772091aec5ab96bcf2519cf2f1ad;hp=e0acdfec9e0077d5dcde52b1a7eec8fb40455fa7;hpb=2be188c2858fa975d6b2ba3f91405d260d3c5b75;p=protos%2Flibecoli.git diff --git a/lib/ecoli_node_re_lex.c b/lib/ecoli_node_re_lex.c index e0acdfe..0120367 100644 --- a/lib/ecoli_node_re_lex.c +++ b/lib/ecoli_node_re_lex.c @@ -143,13 +143,13 @@ static void ec_node_re_lex_free_priv(struct ec_node *gen_node) struct ec_node_re_lex *node = (struct ec_node_re_lex *)gen_node; unsigned int i; + ec_node_free(node->child); for (i = 0; i < node->len; i++) { ec_free(node->table[i].pattern); regfree(&node->table[i].r); } ec_free(node->table); - ec_node_free(node->child); } static size_t @@ -162,15 +162,18 @@ ec_node_re_lex_get_children_count(const struct ec_node *gen_node) return 0; } -static struct ec_node * -ec_node_re_lex_get_child(const struct ec_node *gen_node, size_t i) +static int +ec_node_re_lex_get_child(const struct ec_node *gen_node, size_t i, + struct ec_node **child, unsigned int *refs) { struct ec_node_re_lex *node = (struct ec_node_re_lex *)gen_node; if (i >= 1) - return NULL; + return -1; - return node->child; + *child = node->child; + *refs = 1; + return 0; } static struct ec_node_type ec_node_re_lex_type = {