Rev 4249 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4249 | Rev 4490 | ||
---|---|---|---|
Line 49... | Line 49... | ||
49 | * @param h Hash table structure. Will be initialized by this call. |
49 | * @param h Hash table structure. Will be initialized by this call. |
50 | * @param m Number of slots in the hash table. |
50 | * @param m Number of slots in the hash table. |
51 | * @param max_keys Maximal number of keys needed to identify an item. |
51 | * @param max_keys Maximal number of keys needed to identify an item. |
52 | * @param op Hash table operations structure. |
52 | * @param op Hash table operations structure. |
53 | */ |
53 | */ |
54 | void hash_table_create(hash_table_t *h, count_t m, count_t max_keys, hash_table_operations_t *op) |
54 | void hash_table_create(hash_table_t *h, size_t m, size_t max_keys, hash_table_operations_t *op) |
55 | { |
55 | { |
56 | index_t i; |
56 | size_t i; |
57 | 57 | ||
58 | ASSERT(h); |
58 | ASSERT(h); |
59 | ASSERT(op); |
59 | ASSERT(op); |
60 | ASSERT(op->hash); |
60 | ASSERT(op->hash); |
61 | ASSERT(op->compare); |
61 | ASSERT(op->compare); |
Line 81... | Line 81... | ||
81 | * @param key Array of all keys necessary to compute hash index. |
81 | * @param key Array of all keys necessary to compute hash index. |
82 | * @param item Item to be inserted into the hash table. |
82 | * @param item Item to be inserted into the hash table. |
83 | */ |
83 | */ |
84 | void hash_table_insert(hash_table_t *h, unative_t key[], link_t *item) |
84 | void hash_table_insert(hash_table_t *h, unative_t key[], link_t *item) |
85 | { |
85 | { |
86 | index_t chain; |
86 | size_t chain; |
87 | 87 | ||
88 | ASSERT(item); |
88 | ASSERT(item); |
89 | ASSERT(h); |
89 | ASSERT(h); |
90 | ASSERT(h->op); |
90 | ASSERT(h->op); |
91 | ASSERT(h->op->hash); |
91 | ASSERT(h->op->hash); |
Line 105... | Line 105... | ||
105 | * @return Matching item on success, NULL if there is no such item. |
105 | * @return Matching item on success, NULL if there is no such item. |
106 | */ |
106 | */ |
107 | link_t *hash_table_find(hash_table_t *h, unative_t key[]) |
107 | link_t *hash_table_find(hash_table_t *h, unative_t key[]) |
108 | { |
108 | { |
109 | link_t *cur; |
109 | link_t *cur; |
110 | index_t chain; |
110 | size_t chain; |
111 | 111 | ||
112 | ASSERT(h); |
112 | ASSERT(h); |
113 | ASSERT(h->op); |
113 | ASSERT(h->op); |
114 | ASSERT(h->op->hash); |
114 | ASSERT(h->op->hash); |
115 | ASSERT(h->op->compare); |
115 | ASSERT(h->op->compare); |
Line 135... | Line 135... | ||
135 | * |
135 | * |
136 | * @param h Hash table. |
136 | * @param h Hash table. |
137 | * @param key Array of keys that will be compared against items of the hash table. |
137 | * @param key Array of keys that will be compared against items of the hash table. |
138 | * @param keys Number of keys in the key array. |
138 | * @param keys Number of keys in the key array. |
139 | */ |
139 | */ |
140 | void hash_table_remove(hash_table_t *h, unative_t key[], count_t keys) |
140 | void hash_table_remove(hash_table_t *h, unative_t key[], size_t keys) |
141 | { |
141 | { |
142 | index_t chain; |
142 | size_t chain; |
143 | link_t *cur; |
143 | link_t *cur; |
144 | 144 | ||
145 | ASSERT(h); |
145 | ASSERT(h); |
146 | ASSERT(h->op); |
146 | ASSERT(h->op); |
147 | ASSERT(h->op->hash); |
147 | ASSERT(h->op->hash); |