1 |
|
2003-08-26 Marcus Brinkmann <marcus@g10code.de> |
2 |
|
|
3 |
|
* ihash.h: Include <limits.h>. |
4 |
|
(HURD_IHASH_NO_LOCP): New macro. |
5 |
|
(HURD_IHASH_INITIALIZER): Take locp offset as argument. |
6 |
|
Initialize HT->nr_items, HT->max_load and HT->locp_offset. |
7 |
|
(HURD_IHASH_MAX_LOAD_DEFAULT): New macro. |
8 |
|
(struct _hurd_ihash_item): New structure. |
9 |
|
(_hurd_ihash_item_t): New type. |
10 |
|
(struct hurd_ihash): New fields NR_ITEMS, ITEMS, LOCP_OFFSET and |
11 |
|
MAX_LOAD. Remove KEYS, TABLE and LOCPS. |
12 |
|
(hurd_ihash_set_max_load): New function. |
13 |
|
(HURD_IHASH_ITERATE): Rewrite to use ITEMS instead TABLE and KEYS. |
14 |
|
(hurd_ihash_init): Take locp_offs argument in prototype. |
15 |
|
(hurd_ihash_create): Likewise. |
16 |
|
(hurd_ihash_add): Don't take locp argument in prototype. |
17 |
|
(hurd_ihash_set_max_load): New prototype. |
18 |
|
* ihash.c (HASH, REHASH): Macros removed. |
19 |
|
(ihash_sizes): Change table to list prime numbers that are 3 |
20 |
|
modulo 4. |
21 |
|
(index_empty): Use HT->items instead HT->table. |
22 |
|
(index_valid): Likewise. |
23 |
|
(find_index): Use quadratic probing. |
24 |
|
(locp_remove): New helper function. |
25 |
|
(hurd_ihash_init): Take locp_offs as argument. Initialize |
26 |
|
HT->locp_offset, HT->nr_items and HT->max_load. |
27 |
|
(hurd_ihash_destroy): Free HT->items, but not anything else. |
28 |
|
(hurd_ihash_create): Take locp_offs as argument and pass it to |
29 |
|
hurd_ihash_init. |
30 |
|
(hurd_ihash_set_max_load): New function. |
31 |
|
(add_one): Don't take a locp argument anymore. Use quadratic |
32 |
|
probing. Call locp_remove instead duplicating the code. |
33 |
|
Increment HT->nr_items. |
34 |
|
(hurd_ihash_add): Don't take a locp argument anymore. Check |
35 |
|
maximum load factor before adding element. Use ITEMS and not KEYS |
36 |
|
and TABLE. Don't allocate memory for locp. Use calloc instead of |
37 |
|
malloc and initialization. |
38 |
|
(hurd_ihash_remove): Call locp_remove instead hurd_ihash_locp_remove. |
39 |
|
(hurd_ihash_locp_remove): Call locp_remove. |
40 |
|
|
41 |
2003-08-17 Marcus Brinkmann <marcus@gnu.org> |
2003-08-17 Marcus Brinkmann <marcus@gnu.org> |
42 |
|
|
43 |
* ihash.h (HURD_IHASH_INITIALIZER): New macro. |
* ihash.h (HURD_IHASH_INITIALIZER): New macro. |