From 8ec4f46f31b1d2f71d193952e595e2037fe7f22d Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Fri, 1 Mar 2019 21:53:13 -0800 Subject: trie: Revamp the API to support mappings --- eval.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index 432adfc..d4097ef 100644 --- a/eval.c +++ b/eval.c @@ -1147,14 +1147,17 @@ static bool eval_file_unique(struct eval_state *state, struct trie *seen) { memcpy(id, &statbuf->dev, sizeof(statbuf->dev)); memcpy(id + sizeof(statbuf->dev), &statbuf->ino, sizeof(statbuf->ino)); - int ret = trie_meminsert(seen, id, sizeof(id)); - if (ret > 0) { - state->action = BFTW_SKIP_SUBTREE; - return false; - } else if (ret < 0) { + struct trie_leaf *leaf = trie_insert_mem(seen, id, sizeof(id)); + if (!leaf) { eval_report_error(state); return false; + } + + if (leaf->value) { + state->action = BFTW_SKIP_SUBTREE; + return false; } else { + leaf->value = leaf; return true; } } -- cgit v1.2.3