summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkira TAGOH <akira@tagoh.org>2016-02-18 19:07:48 +0900
committerAkira TAGOH <akira@tagoh.org>2016-02-18 19:07:48 +0900
commite2312cda28a3e9020935b1239332e4ae6c6a50d4 (patch)
treea9179876b58d0c9149b48de34447ddb3733ee158
parentdcf359902feb34e0f8f5f3fe5e3dae719af5937e (diff)
Fix lt_trie_keys() not working
-rw-r--r--liblangtag/lt-trie.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/liblangtag/lt-trie.c b/liblangtag/lt-trie.c
index e91cd3c..de4b080 100644
--- a/liblangtag/lt-trie.c
+++ b/liblangtag/lt-trie.c
@@ -1,7 +1,7 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
* lt-trie.c
- * Copyright (C) 2011-2012 Akira TAGOH
+ * Copyright (C) 2011-2016 Akira TAGOH
*
* Authors:
* Akira TAGOH <akira@tagoh.org>
@@ -251,10 +251,7 @@ lt_trie_new(void)
lt_trie_t *retval = lt_mem_alloc_object(sizeof (lt_trie_t));
if (retval) {
- lt_iter_tmpl_init(&retval->parent);
- retval->parent.init = _lt_trie_iter_init;
- retval->parent.fini = _lt_trie_iter_fini;
- retval->parent.next = _lt_trie_iter_next;
+ LT_ITER_TMPL_INIT(&retval->parent, _lt_trie);
}
return retval;
@@ -352,13 +349,13 @@ lt_trie_keys(lt_trie_t *trie)
lt_return_val_if_fail (trie != NULL, NULL);
- if (trie->root)
+ if (!trie->root)
return NULL;
iter = (lt_trie_iter_t *)lt_iter_init(&trie->parent);
- while (lt_iter_next((lt_iter_t *)&iter, &key, NULL)) {
- retval = lt_list_append(retval, key, free);
+ while (lt_iter_next((lt_iter_t *)iter, &key, NULL)) {
+ retval = lt_list_append(retval, strdup(key), free);
}
lt_iter_finish((lt_iter_t *)iter);