Commit Graph

4 Commits

Author SHA1 Message Date
Zack Weinberg
5dc9cffdfd hashtab.h (struct htab): Add del_f.
* hashtab.h (struct htab): Add del_f.
	(htab_del): New type.
	(htab_create): Add fourth argument.

	* hashtab.c (htab_create): Set del_f.
	(htab_delete, htab_empty, htab_remove_elt, htab_clear_slot):
	Use it.

From-SVN: r32459
2000-03-10 00:00:24 +00:00
Zack Weinberg
5194cf0890 hashtab.c: Remove debugging variables (all_searches, all_collisions, all_expansions).
* hashtab.c: Remove debugging variables (all_searches,
	all_collisions, all_expansions). Delete
	all_hash_table_collisions.
	(create_hash_table, delete_hash_table, empty_hash_table,
	find_hash_table_entry, remove_element_from_hash_table_entry,
	clear_hash_table_slot, traverse_hash_table, hash_table_size,
	hash_table_elements_number, hash_table_collisions): Rename to:
	htab_create, htab_delete, htab_empty, htab_find_slot,
	htab_remove_elt, htab_clear_slot, htab_traverse, htab_size,
	htab_elements, htab_collisions.
	(htab_find): New function, handles common case where you don't
	plan to add or delete an entry.
	(htab_expand): Don't create a whole new table, just a new
	entry vector.
	(htab_find_slot): Simplify logic.

	* hashtab.h (hash_table_t): Rename to htab_t.
	(struct hash_table): Rename to struct htab.  Shorten element
	names.  Reorder elements by size.
	(htab_hash, htab_eq, htab_trav): New typedefs for the callback
	function pointers.
	(hash_table_entry_t): Discard; just use void * for element
	type.

From-SVN: r32437
2000-03-08 23:44:29 +00:00
Zack Weinberg
ed38f5d5d8 hashtab.c (find_hash_table_entry): When returning a DELETED_ENTRY slot, change it to EMPTY_ENTRY first.
1999-10-23 08:51 -0700  Zack Weinberg  <zack@bitmover.com>

	* hashtab.c (find_hash_table_entry): When returning a
	DELETED_ENTRY slot, change it to EMPTY_ENTRY first.
	(clear_hash_table_slot): New function which deletes an entry
	by its position in the table, not its value.
	(traverse_hash_table): New function which calls a hook
	function for every live entry in the table.

	* hashtab.h: Give hash_table_t a struct tag.  Add prototypes
	for clear_hash_table_slot and traverse_hash_table.  Correct
	prototype of all_hash_table_collisions.

From-SVN: r30138
1999-10-23 15:56:52 +00:00
Vladimir Makarov
a6ee63bb34 * hashtab.h: New file.
From-SVN: r30013
1999-10-15 01:50:54 -06:00