SBTrie * sb_trie_open (const char *path, const char *name, TrieIOMode mode) { SBTrie *sb_trie; sb_trie = (SBTrie *) malloc (sizeof (SBTrie)); if (!sb_trie) return NULL; sb_trie->trie = trie_open (path, name, mode); if (!sb_trie->trie) goto exit1; sb_trie->alpha_map = alpha_map_open (path, name, ".sbm"); if (!sb_trie->alpha_map) goto exit2; return sb_trie; exit2: trie_close (sb_trie->trie); exit1: free (sb_trie); return NULL; }
static int p_trie_close(void) { /* check arg */ if (!YAP_IsIntTerm(arg_trie)) return FALSE; /* close trie */ trie_close((TrEntry) YAP_IntOfTerm(arg_trie)); return TRUE; }
int sb_trie_close (SBTrie *sb_trie) { if (!sb_trie) return -1; alpha_map_free (sb_trie->alpha_map); return trie_close (sb_trie->trie); }
int sb_trie_close (SBTrie *sb_trie) { alpha_map_free (sb_trie->alpha_map); return trie_close (sb_trie->trie); }