Rev 4249 | 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); |