hashtab.h (hashval_t): New type.
* hashtab.h (hashval_t): New type. (htab_find_with_hash): Use it as an argument. (htab_find_slot_with_hash): Likewise. * hashtab.c (find_empty_slot_for_expand): Use hashval_t for hash codes. (htab_find_with_hash): Likewise. (htab_find_slot_with_hash): Likewise. From-SVN: r32842
This commit is contained in:
parent
d68894a1c8
commit
b13eb66b7d
@ -1,3 +1,9 @@
|
||||
2000-03-30 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* hashtab.h (hashval_t): New type.
|
||||
(htab_find_with_hash): Use it as an argument.
|
||||
(htab_find_slot_with_hash): Likewise.
|
||||
|
||||
2000-03-14 Bernd Schmidt <bernds@cygnus.co.uk>
|
||||
|
||||
* hashtab.h (htab_trav): Modify type so that first arg is of type
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* An expandable hash tables datatype.
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
Contributed by Vladimir Makarov (vmakarov@cygnus.com).
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@ -38,10 +38,13 @@ extern "C" {
|
||||
|
||||
#include <ansidecl.h>
|
||||
|
||||
/* The type for a hash code. */
|
||||
typedef unsigned int hashval_t;
|
||||
|
||||
/* Callback function pointer types. */
|
||||
|
||||
/* Calculate hash of a table entry. */
|
||||
typedef unsigned int (*htab_hash) PARAMS ((const void *));
|
||||
typedef hashval_t (*htab_hash) PARAMS ((const void *));
|
||||
|
||||
/* Compare a table entry with a possible entry. The entry already in
|
||||
the table always comes first, so the second element can be of a
|
||||
@ -109,9 +112,9 @@ extern void htab_empty PARAMS ((htab_t));
|
||||
extern void *htab_find PARAMS ((htab_t, const void *));
|
||||
extern void **htab_find_slot PARAMS ((htab_t, const void *, int));
|
||||
extern void *htab_find_with_hash PARAMS ((htab_t, const void *,
|
||||
unsigned int));
|
||||
hashval_t));
|
||||
extern void **htab_find_slot_with_hash PARAMS ((htab_t, const void *,
|
||||
unsigned int, int));
|
||||
hashval_t, int));
|
||||
extern void htab_clear_slot PARAMS ((htab_t, void **));
|
||||
extern void htab_remove_elt PARAMS ((htab_t, void *));
|
||||
|
||||
|
@ -1,3 +1,10 @@
|
||||
2000-03-30 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* hashtab.c (find_empty_slot_for_expand): Use hashval_t for hash
|
||||
codes.
|
||||
(htab_find_with_hash): Likewise.
|
||||
(htab_find_slot_with_hash): Likewise.
|
||||
|
||||
2000-03-29 Zack Weinberg <zack@wolery.cumb.org>
|
||||
|
||||
* hashtab.c (htab_find_with_hash): Avoid calculating hash2
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* An expandable hash tables datatype.
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||
Contributed by Vladimir Makarov (vmakarov@cygnus.com).
|
||||
|
||||
This file is part of the libiberty library.
|
||||
@ -155,10 +155,10 @@ htab_empty (htab)
|
||||
static void **
|
||||
find_empty_slot_for_expand (htab, hash)
|
||||
htab_t htab;
|
||||
unsigned int hash;
|
||||
hashval_t hash;
|
||||
{
|
||||
size_t size = htab->size;
|
||||
unsigned int hash2 = 1 + hash % (size - 2);
|
||||
hashval_t hash2 = 1 + hash % (size - 2);
|
||||
unsigned int index = hash % size;
|
||||
|
||||
for (;;)
|
||||
@ -221,9 +221,10 @@ void *
|
||||
htab_find_with_hash (htab, element, hash)
|
||||
htab_t htab;
|
||||
const void *element;
|
||||
unsigned int hash;
|
||||
hashval_t hash;
|
||||
{
|
||||
unsigned int index, hash2;
|
||||
unsigned int index;
|
||||
hashval_t hash2;
|
||||
size_t size;
|
||||
void *entry;
|
||||
|
||||
@ -272,11 +273,12 @@ void **
|
||||
htab_find_slot_with_hash (htab, element, hash, insert)
|
||||
htab_t htab;
|
||||
const void *element;
|
||||
unsigned int hash;
|
||||
hashval_t hash;
|
||||
int insert;
|
||||
{
|
||||
void **first_deleted_slot;
|
||||
unsigned int index, hash2;
|
||||
unsigned int index;
|
||||
hashval_t hash2;
|
||||
size_t size;
|
||||
|
||||
if (insert && htab->size * 3 <= htab->n_elements * 4)
|
||||
|
Loading…
Reference in New Issue
Block a user